コンテストが随分ご無沙汰だったので参加してきました.
Codeforces Round #61 (Div. 2)
A. Petya and Java
面倒だったので,BigIntegerを使って読み込み.実は,入力は必ず正の数なので,負の方向へのチェックは必要ありませんでした….import java.util.*; import java.lang.*; import java.math.*; import java.io.*; import static java.lang.Math.*; import static java.util.Arrays.*; public class A{ Scanner sc=new Scanner(System.in); int INF=1<<28; double EPS=1e-9; void run(){ BigInteger b=sc.nextBigInteger(); long[] s={-128, -32768, -2147483648, -9223372036854775808L}; long[] e={127, 32767, 2147483647, 9223372036854775807L}; String[] ss={"byte", "short", "int", "long"}; for(int i=0; i<4; i++){ if(b.compareTo(new BigInteger(s[i]+""))>=0 &&b.compareTo(new BigInteger(e[i]+""))<=0){ println(ss[i]); return; } } println("BigInteger"); } void println(String s){ System.out.println(s); } void print(String s){ System.out.print(s); } void debug(Object... os){ System.err.println(Arrays.deepToString(os)); } public static void main(String[] args){ new A().run(); } }
B. Petya and Countryside
全探索すればOK.import java.util.*; import java.lang.*; import java.math.*; import java.io.*; import static java.lang.Math.*; import static java.util.Arrays.*; public class B{ Scanner sc=new Scanner(System.in); int INF=1<<28; double EPS=1e-9; int n; int[] a; void run(){ n=sc.nextInt(); a=new int[n]; for(int i=0; i<n; i++){ a[i]=sc.nextInt(); } int max=0; for(int j=0; j<n; j++){ int s=1; for(int i=j-1; i>=0; i--){ if(a[i]<=a[i+1]){ s++; }else{ break; } } for(int i=j+1; i<n; i++){ if(a[i-1]>=a[i]){ s++; }else{ break; } } max=max(max, s); } println(max+""); } void println(String s){ System.out.println(s); } void print(String s){ System.out.print(s); } void debug(Object... os){ System.err.println(Arrays.deepToString(os)); } public static void main(String[] args){ new B().run(); } }
C. Petya and File System
書けば通ると思いましたが,落ちてしまいました.D. Petya and His Friends
私が考えたのは以下のやり方.a1 | a2 | a3 | a4 | … | an |
2 | 2 | 2 | 2 | … | |
3 | 3 | 3 | … | 3 | |
5 | 5 | 5 | … | 5 | |
7 | 7 | 7 | … | 7 |
import java.util.*; import java.lang.*; import java.math.*; import java.io.*; import static java.lang.Math.*; import static java.util.Arrays.*; public class D{ Scanner sc=new Scanner(System.in); int INF=1<<28; double EPS=1e-9; void run(){ int n=sc.nextInt(); if(n==2){ println("-1"); return; } BigInteger[] bis=new BigInteger[n]; for(int i=0; i<n; i++){ bis[i]=BigInteger.ONE; } int max=1000; int p=0; int[] prime=new int[max]; boolean[] isPrime=new boolean[max+1]; Arrays.fill(isPrime, true); isPrime[0]=isPrime[1]=false; for(int i=2; i<=max; i++){ if(isPrime[i]){ prime[p++]=i; for(int j=2*i; j<=max; j+=i){ isPrime[j]=false; } } } for(int j=0; j<n; j++){ BigInteger bi=new BigInteger(prime[j]+""); for(int i=0; i<n-1; i++){ bis[(j+i)%n]=bis[(j+i)%n].multiply(bi); } } for(int i=0; i<n; i++){ if(bis[i].toString().length()>100){ println("-1"); return; } } for(int i=0; i<n; i++){ println(bis[i]+""); } } void println(String s){ System.out.println(s); } void print(String s){ System.out.print(s); } void debug(Object... os){ System.err.println(Arrays.deepToString(os)); } public static void main(String[] args){ new D().run(); } }ooxo- 3226p 68位
1506 -> 1694
紫コーダーになりました.
0 件のコメント:
コメントを投稿