Cod sursa(job #1988285)

Utilizator nicolaefilatNicolae Filat nicolaefilat Data 2 iunie 2017 16:19:28
Problema Gropi Scor 0
Compilator cpp Status done
Runda Simulare 13 Marime 1.33 kb
#include <iostream>
#include <stdlib.h>
#include <fstream>
#define MAXC  250
#define MAX(a, b) ((a) > (b) ? (a) : (b))

using namespace std;

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

int N,M,C;
long long v1[MAXC],v2[MAXC];//C - coloane , N - nr gropi , M - nr cerinte
int i,linie,col,linie1,col1,dif;

void cit(){
    in>>C>>N;
    for( i = 0 ; i < N; i ++){
        in>>linie>>col;
        if(linie == 1){
            v1[col] = 1;
        }else if(linie == 2){
            v2[col] = 1;
        }
    }
}
bool groapa(long long int v[],int y, int y1){
    for(y ; y <= y1; y ++){
        if(v[y]){
            return false;
        }
    }
    return true;
}
int lungime(int x , int y , int x1, int y1){

    if(x == 1){
        dif = abs(y-y1)+1;
        cout<<dif;
        if(groapa(v1,y,y1)){
            return dif;
        }
        return dif + 2;
    }
    if(x == 2){
        dif = abs(y-y1);
        if(groapa(v2,y,y1)){
            return dif;
        }
        return dif + 2;
    }

}


int main()
{
    cit();
    in >>M;
    for(i = 0; i < M; i ++){
        in>>linie>>col>>linie1>>col1;
        if(linie == linie1){
            out<<lungime(linie,col,linie1,col1)<<"\n";
        }else{
            out<<lungime(2,col,2,col1)<<"\n";
        }

    }

    return 0;
}