您的位置:首页 > 其它

Codeforces Round #363 (Div. 2)

2016-07-19 22:18 225 查看
A

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>
#define LL long long
#define CLEAR(xxx) memset(xxx,0,sizeof(xxx))
using namespace std;
const int maxn=200000+5,inf=1e9;
char s[maxn];
int n,ans=inf;
inline void _read(int &x){
char ch=getchar(); bool mark=false;
for(;!isdigit(ch);ch=getchar())if(ch=='-')mark=true;
for(x=0;isdigit(ch);ch=getchar())x=x*10+ch-'0';
if(mark)x=-x;
}
int main(){
int i,x,y;
_read(n);
scanf("%s",s+1);
_read(x);
for(i=2;i<=n;i++){
_read(y);
if(s[i-1]=='R'&&s[i]=='L')
ans=min(ans,(y-x)>>1);
x=y;
}
printf("%d\n", ans>=inf ?-1:ans);
return 0;
}
/*
*/


B
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>
#define LL long long
#define CLEAR(xxx) memset(xxx,0,sizeof(xxx))
using namespace std;
const int maxn=1000+5,inf=1e9;
char s[maxn][maxn];
int n,m;
bool ok1,ok2;
void check(int &x){if(!x) x++;}
int main(){
//freopen("data.in","r",stdin);
//freopen("myans.out","w",stdout);
int i,j,x1,x2,y1,y2,t;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++) scanf("%s",&s[i][1]);
x1=y1=x2=y2=0; ok1=ok2=true;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++)
if(s[i][j]=='*'){x1=i;y2=j; break;}
if(x1)break;
}
if(i>n&&j>m){
printf("YES\n1 1");
return 0;
}
for(i=x1+1;i<=n&&ok1;i++)
for(j=1;j<=m;j++)
if(s[i][j]=='*'&&!y1)y1=j;
else if(s[i][j]=='*'&&y1!=j){ok1=false; break;}

for(i=1;i<=m&&ok2;i++){
if(i==y2) continue;
for(j=1;j<=n;j++)
if(s[j][i]=='*'&&!x2)x2=j;
else if(s[j][i]=='*'&&x2!=j){ok2=false; break;}
}
check(x1);check(x2);
check(y1);check(y2);
if(ok1) printf("YES\n%d %d",x1,y1);
else if(ok2)printf("YES\n%d %d",x2,y2);
else puts("NO");
return 0;
}
/*
*/


C
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>
#define LL long long
#define CLEAR(xxx) memset(xxx,0,sizeof(xxx))
using namespace std;
const int maxn=100+5,inf=1e9;
int n,s[maxn],f[maxn][5];
int main(){
//freopen("data.in","r",stdin);
//freopen("myans.out","w",stdout);
int i,j;
cin>>n;
for(i=1;i<=n;i++)cin>>s[i];
for(i=0;i<=n;i++)
for(j=0;j<=2;j++)f[i][j]=inf;
f[0][0]=0;
for(i=1;i<=n;i++){
f[i][0]=1+min(f[i-1][0],min(f[i-1][1],f[i-1][2]) );
if(s[i]>=2)f[i][1]=min(f[i-1][0],f[i-1][2]);
if(s[i]&1) f[i][2]=min(f[i-1][0],f[i-1][1]);
}
cout<<min(f
[0],min(f
[1],f
[2]))<<endl;
//for(i=1;i<=n;i++)
//cout<<f[i][0]<<" "<<f[i][1]<<" "<<f[i][2]<<endl;
return 0;
}
/*
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: