なんだかなぁ。
http://codeforces.com/contest/656
E. Out of Controls
再帰を使ってループを回避し、3項間演算子を使ってif文を回避した。
CFがサポートする範囲で、問題の制限に影響なく書ける言語はあるのかな…?
#include <bits/stdc++.h> using namespace std; int N; int A[101][101]; void hoge(int y,int x) { cin>>A[y][x]; } int loop(int y,int x) { hoge(y,x); return (x<N-1)?loop(y,x+1):(y<N-1)?loop(y+1,0):0; } int loop2(int y,int x) { int r=(x<N-1)?loop2(y,x+1):(y<N-2)?loop2(y+1,y+2):0; return max(r,A[y][x]); } int dfs(int z,int x,int y) { A[x][y]=min(A[x][y],A[x][z]+A[z][y]); return (y<N-1)?dfs(z,x,y+1):(x<N-1)?dfs(z,x+1,0):(z<N-1)?dfs(z+1,0,0):0; } int main(int argc,char** argv){ cin>>N; loop(0,0); dfs(0,0,0); cout<<loop2(0,1)<<endl; }
F. Ace It!
一見OEISと見せかけて、単に文字の並びをトランプに見立ててブラックジャック風のスコア計算するだけ。
本番Aceという問題名中の記載からトランプは思い浮かんだけど、そこからブラックジャックにはいかなかった。
void solve() { int i,j,k,l,r,x,y; string s; cin>>s; int ret=1; FORR(r,s) { if(r>='1'&&r<='9') ret+=r-'0'; if(r=='0') ret+=9; } cout<<ret<<endl; }
G. You're a Professional
C++で書くともっと新しい言語で書けと怒られる。PythonやRubyなら良いようだ。
また、コード長の制限があり、長いコードは却下される。
最後にコメントで「#kitten」を加えたら通った。
F,I,T=map(int,raw_input().split(" ")) L=[0]*10#kitten ret=0 for f in range(F): S=raw_input() for x in range(I): if S[x]=='Y': L[x]+=1 if L[x]==T: ret+=1 print ret
まとめ
次回は面白い問題を期待したい。