# Codeforces Round #369 (Div. 2) A B 两水题 编码能力

A题：

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
string save[1010];
int main(){
int n,i,j;
scanf("%d",&n);
string t;
int flag = false;
for(i=1;i<=n;i++){
cin>>save[i];
if((save[i][0]=='O'&&save[i][1]=='O')||(save[i][3]=='O'&&save[i][4]=='O')){
if(!flag){
if(save[i][0]=='O'&&save[i][1]=='O'){
save[i][0]='+';
save[i][1]='+';
}else{
save[i][3]='+';
save[i][4]='+';
}
}
flag = true;
}
}
if(flag){
printf("YES\n");
for(i=1;i<=n;i++){
cout<<save[i]<<endl;
}
}else{
printf("NO\n");
}
return 0;
}
B题：

。。。。感觉自己好腊鸡啊。。什么时候div能稳做三题呢。。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn=510;
const long long prime = 10000019;
int n,i,j;
long long save[maxn][maxn];
bool judge(){
long long now=0,sum=0;
bool flag = true;
bool can=true;
for(i=1;i<=n;i++){
if(can){
now = sum;
}
sum = 0;
can = true;
for(j=1;j<=n;j++){
if(save[j][i]==0){
can = false;
}
sum = (sum+save[j][i])%prime;
}
if(can){
if(now!=sum&&now!=0){
flag =false;
return false;
}
}
}
return  true;
}
long long result(int i0){
int it;
if(i0>1){
it=1;
}else if(i0==n){
it = 1;
}else{
it = n;
}
for(i=1;i<=n;i++){
}
}
int main(){
scanf("%d",&n);
int i0,j0;
if(n==1){
printf("1\n");
return 0;
}
long long now=0,sum=0;
bool flag = true;
bool can=true;
for(i=1;i<=n;i++){
if(can){
now = sum;
}
sum = 0;
can = true;
for(j=1;j<=n;j++){
scanf("%I64d",&save[i][j]);
if(save[i][j]==0){
i0=i,j0=j;
can = false;
}
sum = (sum+save[i][j])%prime;
}
if(can){
if(now!=sum&&now!=0){
flag =false;
}
}
}
if(flag){
long long sum1 = 0;
long long sum2 = 0;
bool can=true;
for(i=1;i<=n;i++){
if(save[i][i]==0){
can =false;
break;
}
sum1 = (sum1+save[i][i])%prime;
}
for(i=1;i<=n;i++){
if(save[i][n-i+1]==0){
can =false;
break;
}
sum2 = (sum2+save[i][n-i+1])%prime;
}
if(sum1!=sum2&&can){
printf("-1\n");
}else if(sum1!=now&&can){
printf("-1\n");
}else{
if(judge()){
if(result(i0)>0){
save[i0][j0]=result(i0);
sum1=0,sum2=0;
for(i=1;i<=n;i++){
sum1 = (sum1+save[i][i])%prime;
sum2 = (sum2+save[i][n-i+1])%prime;
}
if(n==2){
if(sum1==sum2&&judge()){
return 0;
}else{
printf("-1\n");
}
}
}
if(sum1==sum2&&sum1==now&&judge()){
}else{
printf("-1\n");
}
}else{
printf("-1\n");
}
}else{
printf("-1\n");
}
}else{
printf("-1\n");
}
}
}else{
printf("-1\n");
}
return 0;
}

• 本文已收录于以下专栏：

## Codeforces Round #369 (Div. 2) D. Directed Roads （dfs+组合数学 图论）

• guhaiteng
• 2016年08月30日 19:06
• 373

## Codeforces Round #378 (Div. 2) E. Sleep in Class

• Fsss_7
• 2016年11月15日 13:48
• 359

## Codeforces Round #442 (Div. 2)

A. #include using namespace std; typedef long long ll; int main() { string s; cin >> s; ...
• Egqawkq
• 2017年10月24日 02:15
• 238

## Codeforces Round #327 (div.2)(A B C D)

codeforces round #327 (div.2)
• lincifer
• 2015年10月26日 13:11
• 1087

## Codeforces Round #258 (Div. 2)-(A,B,C,D,E)

A:Game With Sticks 水题。。。每次操作，都会拿走一个横行，一个竖行。 所以一共会操作min（横行，竖行）次。 #include #include #include #include ...
• rowanhaoa
• 2014年07月25日 14:39
• 1474

## Codeforces Round #430 (Div. 2) A B C D

A. Kirill And The Game time limit per test 2 seconds memory limit per test 256 megabytes...
• sinat_35406909
• 2017年08月31日 21:38
• 139

## 【解题报告】Codeforces Round #401 (Div. 2)

• TRiddle
• 2017年02月25日 17:55
• 411

## Codeforces Round #395 (Div. 2)(ABCD)

ps:打完这场cf才知道自己真的很菜，还是停留在AB题的水平，有时候CD其实很简单，但就是想不到，别人一眼看出而我就是想不到，有时候想到了点子上但就是突破不了 题目链接：  Codeforc...
• qq_34731703
• 2017年02月03日 12:50
• 492

## Codeforces Beta Round div.2 #228 A B C D E

Codeforces Beta Round #228 A B C D E
• hcbbt
• 2014年02月04日 23:10
• 1927

## Codeforces Beta Round #2 A B C

Codeforces Beta Round #2 A B C
• hcbbt
• 2014年02月04日 23:18
• 1638

举报原因： 您举报文章：Codeforces Round #369 (Div. 2) A B 两水题 编码能力 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)