infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: FMI Ekart Dragos-Ioan din Februarie 21, 2012, 18:40:38



Titlul: Problema evaloator
Scris de: FMI Ekart Dragos-Ioan din Februarie 21, 2012, 18:40:38
Am si o mica problema . Evaloatorul doar la anumite teste imi da "Eroare la fisier iesire" http://infoarena.ro/job_detail/686568 (http://infoarena.ro/job_detail/686568)  ](*,) si nu stiu de ce ? Daca va fi nevoie voi publica si sursa  :-'


Titlul: Răspuns: Problema evaloator
Scris de: Cezar Mocan din Februarie 21, 2012, 18:45:51
M-am uitat in evaluatorul problemei si mesajul respectiv este returnat atunci cand afisezi mai multe / mai putine chestii decat ar trebui. Verifica asta si vezi daca merge.


Titlul: Răspuns: Problema evaloator
Scris de: FMI Ekart Dragos-Ioan din Februarie 21, 2012, 18:48:12
Cod:
#include<vector>
#include<algorithm>
#include<fstream>
using namespace std;
struct Motel {
  int x,y,z;
  bool operator() (const Motel &x,const Motel &y){
      if(x.x != y.x)
            return x.x < y.x;
      if(x.x == y.x)
            return x.y < y.y;
  };
};
int main (){
    ifstream in ("motel.in");
    ofstream out ("motel.out");
    int n,i;
    in>>n;
    vector<Motel> a(n);
    vector<vector<int> >b(n,vector<int>(2));
    for(i=0;i<n;i++){
        in>>a[i].x>>a[i].y;
        a[i].z = i + 1;
    }
    sort(a.begin(),a.end(),Motel());
    for(i=0;i<n;i++){
        in>>b[i][0];
        b[i][1] = i + 1;
    }
    sort(b.begin(),b.end());
    for(i=0;i<n;i++){
        if(a[i].x <= b[i][0] && a[i].y >= b[i][0])
            b[i][0] = a[i].z;
        else
            break;
    }
    if(i<n)
        out<<0<<" "<<0<<"\n";
    else
        for(i=0;i<n;i++)
            out<<b[i][0]<<" "<<b[i][1]<<"\n";
    return 0;
}
uite codul si in ultima parte ce returnez