From 458fc02e1b2dd8c4434c90d0dcfdbaa5cc2e1fdb Mon Sep 17 00:00:00 2001 From: Aditya Naik Date: Thu, 10 May 2018 14:17:45 -0400 Subject: newspaper --- 10284/fen.cpp | 290 ++++++++++++++++++++++++++-------------------------- 11340/newspaper.cpp | 32 ++++++ 11340/newspaper.in | 6 ++ 3 files changed, 183 insertions(+), 145 deletions(-) create mode 100644 11340/newspaper.cpp create mode 100644 11340/newspaper.in diff --git a/10284/fen.cpp b/10284/fen.cpp index 5daecd5..b0d2c46 100755 --- a/10284/fen.cpp +++ b/10284/fen.cpp @@ -5,16 +5,16 @@ using namespace std; /* -legend: -f: free -a: attacked -P/p: pawn -B/b: bishop -N/n: knight -R/r: rook -Q/q: queen -K/k: king - */ + legend: + f: free + a: attacked + P/p: pawn + B/b: bishop + N/n: knight + R/r: rook + Q/q: queen + K/k: king +*/ void addrookattack(string board[8][8], int row, int col); void addbishopattack(string board[8][8], int row, int col); @@ -22,162 +22,162 @@ void addattack(string board[8][8], string piece, int row, int col); void printboard(string board[8][8]); int main(){ - string board[8][8]; - string fen;//="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR"; - while(cin>>fen){ - int row=0, col=0, index=0; - while(row<8){ - int frees; - while(fen[index]!='/' && fen[index]!=NULL){ - if(isdigit(fen[index])){ - frees=fen[index]-'0'+col; - while(col>fen){ + int row=0, col=0, index=0; + while(row<8){ + int frees; + while(fen[index]!='/' && fen[index]<71){ + if(isdigit(fen[index])){ + frees=fen[index]-'0'+col; + while(col7) { row++;col=0; } + row=col=0; + while(row<8){ + if(board[row][col]=="f" || board[row][col]=="a"); + else addattack(board, board[row][col], row, col); + col++; + if(col>7) { row++;col=0; } + } + // printboard(board); + int counter=0; + for(row=0;row<8;row++) + for(col=0;col<8;col++) + if(board[row][col]=="f") counter++; + cout<=0 && board[row][col-1]=="f") board[row][col-1]="a"; + if(col+1<=7 && board[row][col+1]=="f") board[row][col+1]="a"; + if(col-1>=0 && board[row][col-1]=="f") board[row][col-1]="a"; - if(row+1<=7){ - if(board[row+1][col]=="f") board[row+1][col]="a"; - if(col+1<=7 && board[row+1][col+1]=="f") board[row+1][col+1]="a"; - if(col-1>=0 && board[row+1][col-1]=="f") board[row+1][col-1]="a"; - } - if(row-1>=0){ - if(board[row-1][col]=="f") board[row-1][col]="a"; - if(col+1<=7 && board[row-1][col+1]=="f") board[row-1][col+1]="a"; - if(col-1>=0 && board[row-1][col-1]=="f") board[row-1][col-1]="a"; + if(row+1<=7){ + if(board[row+1][col]=="f") board[row+1][col]="a"; + if(col+1<=7 && board[row+1][col+1]=="f") board[row+1][col+1]="a"; + if(col-1>=0 && board[row+1][col-1]=="f") board[row+1][col-1]="a"; + } + if(row-1>=0){ + if(board[row-1][col]=="f") board[row-1][col]="a"; + if(col+1<=7 && board[row-1][col+1]=="f") board[row-1][col+1]="a"; + if(col-1>=0 && board[row-1][col-1]=="f") board[row-1][col-1]="a"; + } } - } - else if(piece=="q" || piece=="Q") { - addrookattack(board, row, col); - addbishopattack(board, row, col); - } - else if(piece=="b" || piece=="B") { addbishopattack(board, row, col); } - else if(piece=="r" || piece=="R") { addrookattack(board, row, col); } - else if(piece=="n" || piece=="N") { - if(row+2<=7 && col+1<=7 && board[row+2][col+1]=="f") board[row+2][col+1]="a"; - if(row+2<=7 && col-1>=0 && board[row+2][col-1]=="f") board[row+2][col-1]="a"; - if(row-2>=0 && col+1<=7 && board[row-2][col+1]=="f") board[row-2][col+1]="a"; - if(row-2>=0 && col-1>=0 && board[row-2][col-1]=="f") board[row-2][col-1]="a"; + else if(piece=="q" || piece=="Q") { + addrookattack(board, row, col); + addbishopattack(board, row, col); + } + else if(piece=="b" || piece=="B") { addbishopattack(board, row, col); } + else if(piece=="r" || piece=="R") { addrookattack(board, row, col); } + else if(piece=="n" || piece=="N") { + if(row+2<=7 && col+1<=7 && board[row+2][col+1]=="f") board[row+2][col+1]="a"; + if(row+2<=7 && col-1>=0 && board[row+2][col-1]=="f") board[row+2][col-1]="a"; + if(row-2>=0 && col+1<=7 && board[row-2][col+1]=="f") board[row-2][col+1]="a"; + if(row-2>=0 && col-1>=0 && board[row-2][col-1]=="f") board[row-2][col-1]="a"; - if(col+2<=7 && row+1<=7 && board[row+1][col+2]=="f") board[row+1][col+2]="a"; - if(col+2<=7 && row-1>=0 && board[row-1][col+2]=="f") board[row-1][col+2]="a"; - if(col-2>=0 && row+1<=7 && board[row+1][col-2]=="f") board[row+1][col-2]="a"; - if(col-2>=0 && row-1>=0 && board[row-1][col-2]=="f") board[row-1][col-2]="a"; - } - else if(piece=="p"){ - if(row+1<8 && col-1>=0 && board[row+1][col-1]=="f") board[row+1][col-1]="a"; - if(row+1<8 && col+1<=7 && board[row+1][col+1]=="f") board[row+1][col+1]="a"; - } - else if(piece=="P"){ - if(row-1>=0 && col+1<=7 && board[row-1][col+1]=="f") board[row-1][col+1]="a"; - if(row-1>=0 && col-1>=0 && board[row-1][col-1]=="f") board[row-1][col-1]="a"; - } + if(col+2<=7 && row+1<=7 && board[row+1][col+2]=="f") board[row+1][col+2]="a"; + if(col+2<=7 && row-1>=0 && board[row-1][col+2]=="f") board[row-1][col+2]="a"; + if(col-2>=0 && row+1<=7 && board[row+1][col-2]=="f") board[row+1][col-2]="a"; + if(col-2>=0 && row-1>=0 && board[row-1][col-2]=="f") board[row-1][col-2]="a"; + } + else if(piece=="p"){ + if(row+1<8 && col-1>=0 && board[row+1][col-1]=="f") board[row+1][col-1]="a"; + if(row+1<8 && col+1<=7 && board[row+1][col+1]=="f") board[row+1][col+1]="a"; + } + else if(piece=="P"){ + if(row-1>=0 && col+1<=7 && board[row-1][col+1]=="f") board[row-1][col+1]="a"; + if(row-1>=0 && col-1>=0 && board[row-1][col-1]=="f") board[row-1][col-1]="a"; + } } void printboard(string board[8][8]){ - for(int r=0;r<8;r++){ - for(int c=0;c<8;c++){ - cout<=8 || trow>=8 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; - else board[trow][tcol]="a"; - } - conf=false; - trow=row;tcol=col; - while(!conf){ - tcol++;trow--; - if(tcol>=8 || trow<0 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; - else board[trow][tcol]="a"; - } - conf=false; - trow=row; tcol=col; - while(!conf){ - tcol--;trow--; - if(tcol<0 || trow<0 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; - else board[trow][tcol]="a"; - } - conf=false; - trow=row; tcol=col; - while(!conf){ - tcol--;trow++; - if(tcol<0 || trow>=8 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; - else board[trow][tcol]="a"; - } + bool conf=false; + int trow=row, tcol=col; + while(!conf){ + tcol++;trow++; + if(tcol>=8 || trow>=8 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; + else board[trow][tcol]="a"; + } + conf=false; + trow=row;tcol=col; + while(!conf){ + tcol++;trow--; + if(tcol>=8 || trow<0 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; + else board[trow][tcol]="a"; + } + conf=false; + trow=row; tcol=col; + while(!conf){ + tcol--;trow--; + if(tcol<0 || trow<0 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; + else board[trow][tcol]="a"; + } + conf=false; + trow=row; tcol=col; + while(!conf){ + tcol--;trow++; + if(tcol<0 || trow>=8 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; + else board[trow][tcol]="a"; + } } void addrookattack(string board[][8], int row, int col){ - bool conf=false; - int trow=row, tcol=col; - while(!conf){ - trow++; - if(trow>=8 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; - else board[trow][tcol]="a"; - } - conf=false; - trow=row; tcol=col; - while (!conf){ - trow--; - if(trow<0 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; - else board[trow][tcol]="a"; - } - conf=false; - trow=row; tcol=col; - while (!conf){ - tcol++; - if(tcol>=8 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; - else board[trow][tcol]="a"; - } - conf=false; - trow=row;tcol=col; - while (!conf){ - tcol--; - if(tcol<0 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; - else board[trow][tcol]="a"; - } + bool conf=false; + int trow=row, tcol=col; + while(!conf){ + trow++; + if(trow>=8 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; + else board[trow][tcol]="a"; + } + conf=false; + trow=row; tcol=col; + while (!conf){ + trow--; + if(trow<0 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; + else board[trow][tcol]="a"; + } + conf=false; + trow=row; tcol=col; + while (!conf){ + tcol++; + if(tcol>=8 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; + else board[trow][tcol]="a"; + } + conf=false; + trow=row;tcol=col; + while (!conf){ + tcol--; + if(tcol<0 || (board[trow][tcol]!="f" && board[trow][tcol]!="a")) conf=true; + else board[trow][tcol]="a"; + } } diff --git a/11340/newspaper.cpp b/11340/newspaper.cpp new file mode 100644 index 0000000..9ffa848 --- /dev/null +++ b/11340/newspaper.cpp @@ -0,0 +1,32 @@ +#include +#include +#include +using namespace std; + +int main(){ + int tc; + cin>>tc; + for(int i=0; i>k; + for(int j=0; j>c>>cost; + costmap[c+128] = cost; + } + + cin>>lines; + cin.ignore(); + for(int j=0; j