Submission #2141

#TimeUsernameProblemLanguageResultExecution timeMemory
2141hana5505대표 선수 (KOI11_player)C++98
20 / 20
369 ms16940 KiB
#include<stdio.h> #include<deque> #include<algorithm> using namespace std; deque<int> ar[1001]; int size=0,aa[1000001]; struct pp{ int score; int team; }play[1000001]; bool cmp(struct pp a,struct pp b){ return a.score<b.score; } int main() { //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); int n,m,i,j,t,cnt=0,min,minindex,max,ans=1999999999; scanf("%d %d",&n,&m); for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ size++; scanf("%d",&play[size].score); play[size].team=i; } } sort(play+1,play+size+1,cmp); for(i=1;i<=size;i++){ ar[play[i].team].push_back(play[i].score); aa[i]=play[i+1].team; } min=1999999999; minindex=0; max=-1; t=1; for(i=1;i<=n;i++){ if(ar[i].front()>max) max=ar[i].front(); if(ar[i].front()<min){ min=ar[i].front(); minindex=i; } } if(ans>(max-min)) ans=(max-min); ar[minindex].pop_front(); if(ar[minindex].front()>max) max=ar[minindex].front(); min=ar[aa[t]].front(); minindex=aa[t]; while(1){ if(ans>(max-min)) ans=(max-min); ar[minindex].pop_front(); if(ar[minindex].size()<1) break; if(ar[minindex].front()>max) max=ar[minindex].front(); min=ar[aa[++t]].front(); minindex=aa[t]; } printf("%d",ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...