题意:在给定的序列中使得原来有相同的元素调整为全不相同,并且使得改变的序列和最少,还要满足每个人的要求。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std ; struct node{ __int64 num; int id; }a[300005]; __int64 b[300005]; bool cmp(node a,node b) { if(a.num==b.num) return a.id<b.id; return a.num<b.num; } int main() { int n; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++){ scanf("%I64d",&a[i].num); a[i].id=i; } sort(a,a+n,cmp); b[a[0].id]=a[0].num; for(int i=1;i<n;i++){ if(a[i].num<=b[a[i-1].id]){ b[a[i].id]=b[a[i-1].id]+1; } else b[a[i].id]=a[i].num; } for(int i=0;i<n;i++) printf(i==0?"%I64d":" %I64d",b[i]); puts(""); } return 0 ; }
最后
以上就是要减肥手链最近收集整理的关于CF-379C的全部内容,更多相关CF-379C内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复