博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Codeforces370E】Summer Reading [构造]
阅读量:7117 次
发布时间:2019-06-28

本文共 1981 字,大约阅读时间需要 6 分钟。

Summer Reading

Time Limit: 20 Sec  Memory Limit: 512 MB

Description

  

Input

  

Output

  

Sample Input

  7
  0 1 0 0 0 3 0

Sample Output

  3
  1 1 2 2 3 3 3

HINT

  

Solution

  

Code

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 using namespace std;10 typedef long long s64;11 12 const int ONE = 1000005;13 const int MOD = 1e9 + 7;14 15 int n;16 int a[ONE];17 int vis[ONE], ans[ONE];18 19 struct power20 {21 int val, times;22 friend bool operator <(power a, power b)23 {24 if(a.val != b.val) return a.val < b.val;25 return a.times < b.times;26 }27 }low[ONE], up[ONE];28 29 int get() 30 { 31 int res;char c; 32 while( (c=getchar())<48 || c>57 );33 res=c-48; 34 while( (c=getchar())>=48 && c<=57 )35 res=res*10+c-48; 36 return res; 37 }38 39 void Deal_first()40 {41 low[1] = up[1] = (power){ 1, 1};42 for(int i = 2; i <= n; i++)43 {44 low[i] = low[i - 1], up[i] = up[i - 1];45 46 if(++low[i].times > 5) low[i] = (power){low[i].val + 1, 1};47 if(++up[i].times > 2) up[i] = (power){up[i].val + 1, 1};48 49 if(a[i] != 0)50 {51 if(low[i].val > a[i] || up[i].val < a[i])52 {53 printf("-1");54 exit(0);55 }56 low[i] = max(low[i], (power){a[i], 1});57 up[i] = min(up[i], (power){a[i], 5});58 }59 60 if(low[i].val > up[i].val) {printf("-1"); exit(0);}61 }62 }63 64 int main()65 {66 n = get();67 for(int i = 1; i <= n; i++)68 a[i] = get();69 if(a[1] > 1) {printf("-1"); exit(0);}70 Deal_first();71 72 int val = up[n].val - (up[n].times == 1);73 if(low[n].val > val) {printf("-1"); exit(0);}74 for(int i = n; i >= 1; i--)75 {76 val = min(val, up[i].val);77 val -= vis[val] == 5;78 ans[i] = val, vis[val]++;79 }80 81 if(ans[1] <= 0) {printf("-1"); exit(0);}82 83 printf("%d\n", ans[n]);84 for(int i = 1; i <= n; i++)85 printf("%d ", ans[i]);86 87 }
View Code

 

转载于:https://www.cnblogs.com/BearChild/p/7687863.html

你可能感兴趣的文章
窗体作为控件嵌入panel
查看>>
java @param参数注解
查看>>
GSAP 官方文档(结贴)
查看>>
百度陆奇最新内部演讲:如何成为一个优秀的工程师?
查看>>
Beam概念学习系列之SDKs
查看>>
pycharm环境下:同文件夹下文件(.py)之间的调用,出现红线问题
查看>>
log4j日志级别
查看>>
【重磅】Spring Boot 2.1.0 权威发布
查看>>
网络开发必备的HTTP协议知识
查看>>
VC++中遇到的各种数据类型BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR...
查看>>
404 – File or directory not found.
查看>>
How To Use Google Logging Library (glog)
查看>>
home 解析
查看>>
新浪微博Failed to receive access token
查看>>
ASP.NET开发,从二层至三层,至面向对象
查看>>
AESDK从流中获得变换信息
查看>>
转载:JAVA中获取项目文件路径
查看>>
Java集合之LinkedList源码分析
查看>>
二分查找(递归和非递归实现)
查看>>
background-size background-positon合并的写法
查看>>