【bzoj 1088】 [SCOI2005]扫雷Mine 不能再水了
2016-10-21 16:12
323 查看
不想多说
#include<cstdio>
#include<cstring>
#include<iostream>
#define maxn 10020
using namespace std;
int n,a[maxn];
bool check(int now){
if(now>a[1]||now>a[2])return false;
int last=now,up=0;
for(int i=2;i<=n;i++){
int x=a[i-1]-last-up;
if(x<0)return false;
if(last+x>a[i])return false;
if(x>a[i+1])return false;
if(i==n&&last+x!=a[i])return false;
up=last,last=x;
}
return true;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",a+i);
if(a[i]>3)return printf("0"),0;
}
a[n+1]=1e9;
int ans=0;
if(check(1))ans++;
if(check(0))ans++;
cout<<ans;
return 0;
}
#include<cstdio>
#include<cstring>
#include<iostream>
#define maxn 10020
using namespace std;
int n,a[maxn];
bool check(int now){
if(now>a[1]||now>a[2])return false;
int last=now,up=0;
for(int i=2;i<=n;i++){
int x=a[i-1]-last-up;
if(x<0)return false;
if(last+x>a[i])return false;
if(x>a[i+1])return false;
if(i==n&&last+x!=a[i])return false;
up=last,last=x;
}
return true;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",a+i);
if(a[i]>3)return printf("0"),0;
}
a[n+1]=1e9;
int ans=0;
if(check(1))ans++;
if(check(0))ans++;
cout<<ans;
return 0;
}
相关文章推荐
- BZOJ1088 - [SCOI2005]扫雷Mine
- bzoj1088 [SCOI2005]扫雷Mine
- bzoj 1088: [SCOI2005]扫雷Mine
- 【水题】【SCOI 2005】【bzoj 1088】扫雷Mine
- 【BZOJ 1088】【SCOI 2005】扫雷mine
- bzoj1088[SCOI2005]扫雷Mine
- BZOJ1088 [SCOI2005]扫雷Mine
- BZOJ系列1088《[SCOI2005]扫雷Mine》题解
- 【SCOI2005】【BZOJ1088】扫雷Mine
- 【bzoj1088】 [SCOI2005]扫雷Mine
- BZOJ 1088: [SCOI2005]扫雷Mine
- 【bzoj1088】[SCOI2005]扫雷Mine
- BZOJ1088 - [SCOI2005]扫雷Mine
- BZOJ 1088 [SCOI2005]扫雷Mine
- BZOJ 1088 [SCOI 2005] 扫雷Mine 题解&代码
- BZOJ 1088 [SCOI2005] 扫雷Mine
- [bzoj1088][SCOI2005]扫雷Mine
- BZOJ 1088: [SCOI2005]扫雷Mine
- 【bzoj 1088/P2327】扫雷 2005SCOI(脑洞?)
- [BZOJ1088][SCOI2005]扫雷Mine