Submission #4906

#TimeUsernameProblemLanguageResultExecution timeMemory
4906gs13068대표 선수 (KOI11_player)C++98
0 / 20
232 ms12928 KiB
#include<cstdio> #include<algorithm> #include<set> struct student { int x; int y; int z; } s[1000][1000],t; inline bool operator <(const student &a,const student &b) { if(a.x!=b.x)return a.x<b.x; if(a.y!=b.y)return a.y<b.y; return a.z<b.z; } std::set<student> S; std::set<student>::iterator it1,it2; int main() { int min=1e9; int i,j,n,m; scanf("%d%d",&n,&m); for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%d",&s[i][j].x); s[i][j].y=i; s[i][j].z=j; } std::sort(s[i],s[i]+m); } for(i=0;i<n;i++)S.insert(s[i][0]); for(i=n;i<n*m;i++) { it1=S.begin(); it2=S.end(); it2--; if(it2->x-it1->x<min) min=it2->x-it1->x; if(it1->z+1==m)break; S.insert(s[it1->y][it1->z+1]); S.erase(it1); } printf("%d",min); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...