メモ

yukicoderでゆるふわgolf

2018-05-01から1ヶ月間の記事一覧

yukicoder No.689 E869120 and Constructing Array 3

問題はこちら No.689 E869120 and Constructing Array 3 - yukicoderバラバラに考えれば良さそう つまりa+b,c+d,e+f,……はそれぞれ素数だが、それ以外の組み合わせは素数にならないようなものを構成することを考える。 そのようなものが作れれば、それらをそ…

yukicoder No.688 E869120 and Constructing Array 2

問題はこちら No.688 E869120 and Constructing Array 2 - yukicoder明らかに並び順には依存せず、0と1の個数のみで決まることがわかる。 1がi個、0がj個あるとき、和が2になる部分集合はi*(i-1)/2*pow(2,j)個あるので、i,jを全探索する main(){ int k; scan…

yukicoder No.687 E869120 and Constructing Array 1

問題はこちら No.687 E869120 and Constructing Array 1 - yukicodern/2とn-n/2を出力するだけ。特に工夫することはない main(n){ scanf("%d",&n); printf("%d %d",n/2,n-n/2); } 50B

yukicoder No.668 6.0*10^23

問題はこちら No.668 6.0*10^23 - yukicoder桁上りなどに気をつけて、3桁目を四捨五入するコードを書く char s[1000010]; int main(){ gets(s); int s0=s[0]-48; int s1=s[1]-48; int s2=s[2]-48; int n=strlen(s)-1; if(s2>=5)s1++; if(s1>9){ s1=0; s0++; …

yukicoder No.677 10^Nの約数

問題はこちら No.677 10^Nの約数 - yukicoder約数は2^i*5^jの形をしている。全て求めてソートすればよい。 ここでは約数を保存せず、毎回「今まで出力したものより大きい最小のもの」を探すようにしている。O(N^4) main(){ int n; scanf("%d",&n); long M=0;…

yukicoder No.661 ハローキティはりんご3個分

問題はこちら No.661 ハローキティはりんご3個分 - yukicoder要するにFizzBuzz main(){ int n; scanf("%d",&n); while(n--){ int t; scanf("%d",&t); if(t%40==0)puts("ikisugi"); else if(t%8==0)puts("iki"); else if(t%10==0)puts("sugi"); else printf("…

yukicoder No.667 Mice's Luck(ネズミ達の運)

問題はこちら No.667 Mice's Luck(ネズミ達の運) - yukicoder本質的には累積和の概念だと思うので★1.5よりは高級だと思うんですがどうなんでしょ「セーフな箱があといくつ残っているか」を覚えておけば良い main(){ char s[1<<17]; int n,o; n=strlen(gets(s…

yukicoder No.676 C0nvertPr0b1em

問題はこちら No.676 C0nvertPr0b1em - yukicoder指示通り実装するだけ char s[1010]; main(){ scanf("%s",s); for(int i=0;s[i];i++){ if(s[i]=='l'||s[i]=='I')putchar('1'); else if(s[i]=='o'||s[i]=='O')putchar('0'); else putchar(s[i]); } } readとg…

yukicoder No.682 Average

問題はこちら No.682 Average - yukicoder(A+B+i)/3が整数⇔A+B+iが3の倍数 を使って全探索するだけ main(){ int a,b; scanf("%d%d",&a,&b); int ans=0; for(int i=a;i<=b;i++)if((a+b+i)%3==0)ans++; printf("%d",ans); } 「A≦i≦BのうちA+B+iが3の倍数になる…

yukicoder No.666 1000000007で割るだけ

問題はこちら No.666 1000000007で割るだけ - yukicoderやるだけ。オーバーフローに注意 main(a,b){ scanf("%d%d",&a,&b); printf("%ld",1L*a*b%1000000007); } 63B

yukicoder No.671 1000000007

問題はこちら No.671 1000000007 - yukicoder 文字列として受け取って、その長さがどれだけ違うかを見るのが一番簡単。 s;main(){printf("%d",abs(strlen(gets(&s))-10));} 48B