Cod sursa(job #197578)

Utilizator iuly2freemanVasiliev Iulian iuly2freeman Data 5 iulie 2008 11:01:07
Problema Gropi Scor 0
Compilator cpp Status done
Runda Junior Challenge 2008 Marime 1.28 kb
#include<iostream>
#include<fstream.h>

using namespace std;

ifstream fin("gropi.in");
ofstream fout("gropi.out");

long long int c,x,y,y1,y2,timp,t;
int n=100000,m,a[2][1000000],x1,x2;

void citirea();

int rez(long long i,long long ii){
    if(i==ii){
        if(x1!=x2) return 2;
        else return 1;
    }
    else{
        t=0;
        if(i<ii){
            int ind=x1;
            while(i!=ii){
                if(a[ind][i+1]){ ind=!ind;t++;}
                i++;
                t++;
            }
            if (ind!=x2) t++;
        }
        else{
            int ind=x2;
            while(i!=ii){
                if(a[ind][ii+1]){ ind=!ind;t++;}
                ii++;
                t++;
            }
            if (ind!=x1) t++;
        }
        t++;
        return t;
    }

}

void citirea(){
    fin>>c>>n;
    for(int i=0; i<n; i++){
        fin>>x>>y;
        y--;x--;
        a[x][y]=1;
    }
    fin>>m;
}

int main(){

    citirea();
    for (int i=0; i<m;i++){
        fin>>x1>>y1>>x2>>y2;
        x1--;y1--;x2--;y2--;
        timp=rez(y1,y2);
        fout<<timp<<endl;
    }

    /*for(int i=0; i<c; i++){
        cout<<a[0][i]<<" "<<a[1][i]<<endl;
    }*/

    fin.close();
    fout.close();
    return 0;
}