ural 1645. Ski Race

//别鄙视我贴水题呀,,我是在比赛的时候让它坑爹咯,,老琢磨30s Delay了

//其实只要注意到,考虑每一个位置的时候,所有它左面的比它大的一定在最终成绩榜中比它靠前,其他的就是可能的了,它右面同理

/* ID:1192432 PROG: castle LANG: C++ */ #include <iostream> #include <queue> #include <stack> #include <string> #include <map> #include <vector> #include <memory.h> #include <cstdio> #include <cmath> #include <algorithm> using namespace std; const int MAX=2005,INF=1<<30; struct State{ int order,num; int best,worst; }; int n; State a[MAX]; bool cmp(const State &i,const State &j){ return i.num<j.num; } int main() { #ifndef ONLINE_JUDGE freopen("i.txt", "r", stdin); #endif a[0].num=-1; while(cin>>n){ for(int i=1;i<=n;i++){ cin>>a[i].num; a[i].order=i; a[i].best=i; a[i].worst=i; } for(int i=1;i<=n;i++){ for(int j=1;j<i;j++){ if(a[i].num>a[j].num) --a[i].best; } for(int j=i;j<=n;j++){ if(a[i].num<a[j].num) ++a[i].worst; } } sort(a,a+n+1,cmp); for(int i=1;i<=n;i++){ cout<<a[i].best<<" "<<a[i].worst<<endl; } } return 0; }

你可能感兴趣的:(c,struct,delay)