Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 987 Accepted Submission(s): 397
#include <cstdio> #include <cmath> #include <cstring> #include <ctime> #include <iostream> #include <algorithm> #include <set> #include <vector> #include <sstream> #include <queue> #include <typeinfo> #include <fstream> typedef long long ll; using namespace std; //freopen("D.in","r",stdin); //freopen("D.out","w",stdout); #define sspeed ios_base::sync_with_stdio(0);cin.tie(0) #define maxn 1000001 const int inf=0x7fffffff; //无限大 struct node { int x; int y; }; node a[maxn]; node b[maxn]; bool cmp(node c,node d) { if(c.x==d.x) return c.y<d.y; return c.x<d.x; } bool cmp1(node c,node d) { return c.y>d.y; } bool cmp2(node c,node d) { return c.y<d.y; } int main() { int n,k1,k2; int cas=1; while(scanf("%d%d%d",&n,&k1,&k2)!=EOF) { if(n==0) break; for(int i=0;i<n;i++) { scanf("%d",&a[i].x); a[i].y=i+1; } sort(a,a+n,cmp); sort(a,a+k1,cmp2); sort(a+n-k2,a+n,cmp1); printf("Case %d\n",cas++); int first=1; for(int i=0;i<k1;i++) { if(first) { printf("%d",a[i].y); first=0; } else printf(" %d",a[i].y); } printf("\n"); first=1; for(int i=n-k2;i<n;i++) { if(first) { printf("%d",a[i].y); first=0; } else printf(" %d",a[i].y); } printf("\n"); } return 0; }
原文:http://www.cnblogs.com/qscqesze/p/4254715.html