Nu aveti permisiuni pentru a descarca fisierul grader_test1.ok
Cod sursa(job #3166540)
Utilizator | Data | 8 noiembrie 2023 22:16:28 | |
---|---|---|---|
Problema | Pachete | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 1.37 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n,cnt,i,j,k,aux,x,st,dr,mid,nrdr,CXpos,CYpos,minim[50000],pos,adv,prvmin;
pair <int,int> clnt[50001];
int main(){
ifstream fin("pachete.in");
ofstream fout("pachete.out");
fin>>n;
fin>>clnt[50000].first>>clnt[50000].second;
for(i=0;i<n;i++){
fin>>clnt[i].first>>clnt[i].second;
}
//sort(clnt,clnt+n);
for(i=0;i<n;i++){
minim[i]=abs(clnt[i].first-clnt[50000].first)+abs(clnt[i].second-clnt[50000].second);
}
adv=1;
while(adv==1){
adv=0;
CXpos=clnt[50000].first; CYpos=clnt[50000].second; pos=50000; prvmin=0;
while(pos!=aux){
aux=pos;
for(i=0;i<n;i++){
if(clnt[i].first!=-1){
adv=1;
if(minim[i]==(abs(CXpos-clnt[i].first)+abs(CYpos-clnt[i].second)+prvmin)){
CXpos=clnt[i].first;
CYpos=clnt[i].second;
clnt[i].first=-1;
pos=i;
prvmin+=minim[i];
break;
}
}
}
if(pos==aux&&pos!=50000){
nrdr++;
}
}
}
fout<<nrdr;
fin.close();
fout.close();
return 0;
}