Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
105522 方文轩 挖地雷 C++ 通过 100 0 MS 296 KB 1576 2023-10-07 13:13:37

Tests(18/18):


#include<cstdio> #include<cstring> using namespace std; int read() { int ans=0; char ch=getchar(),last=' '; while(ch<'0'||ch>'9') { last=ch,ch=getchar(); } while(ch>='0'&&ch<='9') { ans=(ans<<3)+(ans<<1)+ch-'0'; ch=getchar(); } return last=='-'?-ans:ans; } int n,dl[10001]; int ans[10001],ans2[10001]; bool flag1,flag0; inline void print() { for(int i=1;i<=n;i++) { printf("%d ",ans[i]); } } inline void print2() { for(int i=1;i<=n;i++) { printf("%d ",ans2[i]); } } int main(){ n=read(); for(int i=1;i<=n;i++) { dl[i]=read(); } ans[1]=1; for(int i=1;i<=n;i++) { if(i==1){ ans[2]=dl[1]-ans[1]; if(ans[2]<0||ans[2]>1)flag1=1; } if(i==n){ if(dl[i]-ans[i-1]-ans[i]!=0)flag1=1; } else{ ans[i+1]=dl[i]-ans[i-1]-ans[i]; if(ans[i+1]<0||ans[i+1]>1)flag1=1; } } for(int i=1;i<=n;i++) { if(i==1){ ans2[2]=dl[1]-ans2[1]; if(ans2[2]<0||ans2[2]>1)flag0=1; } if(i==n){ if(dl[i]-ans2[i-1]-ans2[i]!=0)flag0=1; } else{ ans2[i+1]=dl[i]-ans2[i-1]-ans2[i]; if(ans2[i+1]<0||ans2[i+1]>1)flag0=1; } } if(flag1==1&&flag0==0)print2(); else if(flag1==0&&flag0==1)print(); else if(flag1==0&&flag0==0)print(); else printf("No answer"); }


测评信息: