Codeforces Beta Round #69 (Div. 2 Only)
Div. 1復帰が目標でした.A. Panoramixs Prediction
値が小さいので愚直に一つずつ試行.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;
int m, n;
void run(){
m=sc.nextInt();
n=sc.nextInt();
boolean f=true;
for(int i=m+1; i<n; i++){
f&=!isP(i);
}
f&=isP(n);
println(f?"YES":"NO");
}
boolean isP(int n){
for(int i=2; i*i<=n; i++){
if(n%i==0){
return false;
}
}
return n!=1;
}
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. Depression
%12を忘れないように気をつけるだけ.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;
void run(){
String[] ss=sc.next().split(":");
double h=Integer.parseInt(ss[0]);
double m=Integer.parseInt(ss[1]);
h=(h%12)/12.0*360;
m=m/60.0*360;
h=(h+m/12)%360;
println(h+" "+m);
}
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. Heroes
全探索で解くことが出来るが,ちょっとしたミスをしたためSystem Test落ち.下は修正版.import java.util.*;
import java.lang.*;
import java.math.*;
import java.io.*;
import static java.lang.Math.*;
import static java.util.Arrays.*;
public class C{
Scanner sc=new Scanner(System.in);
int INF=1<<28;
double EPS=1e-9;
int n, a, b, c;
int[] p, q;
HashMap<String, Integer> map;
void run(){
int m=7;
map=new HashMap<String, Integer>();
map.put("Anka", 0);
map.put("Chapay", 1);
map.put("Cleo", 2);
map.put("Troll", 3);
map.put("Dracul", 4);
map.put("Snowy", 5);
map.put("Hexadecimal", 6);
n=sc.nextInt();
p=new int[n];
q=new int[n];
for(int i=0; i<n; i++){
p[i]=map.get(sc.next());
sc.next();
q[i]=map.get(sc.next());
}
a=sc.nextInt();
b=sc.nextInt();
c=sc.nextInt();
long dmin=1L<<32;
int lmax=0;
for(int k=1; k<1<<m; k++){
for(int j=1; j<1<<m; j++){
int i=((1<<m)-1)&~(k^j);
if((k^j)==(k|j)&&i>0){
int x=a/Integer.bitCount(i);
int y=b/Integer.bitCount(j);
int z=c/Integer.bitCount(k);
int d=max(abs(x-y), max(abs(y-z), abs(z-x)));
int l=0;
for(int e=0; e<n; e++){
if(((k>>p[e])&1)!=0&&((k>>q[e])&1)!=0)
l++;
else if(((j>>p[e])&1)!=0&&((j>>q[e])&1)!=0)
l++;
else if(((i>>p[e])&1)!=0&&((i>>q[e])&1)!=0)
l++;
}
if(d<dmin){
dmin=d;
lmax=l;
}else if(d==dmin){
lmax=max(lmax, l);
}
}
}
}
println(dmin+" "+lmax);
}
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 C().run();
}
}
D. Falling Anvils
x2+√px+q=0は,p≧4qならば実解が存在する.つまり,(p,q)∈[0,a]×[-b,b]の長方形内においてp≧4qを満たす領域の面積を計算し,それを長方形の面積で割った値が,実解が存在する確率.a=0やb=0の時は,0除算を避けるために例外処理を追加する必要がある.
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;
int t;
double a, b;
void run(){
t=sc.nextInt();
for(int i=0; i<t; i++){
a=sc.nextInt();
b=sc.nextInt();
double area;
if(4*b<a+EPS){
area=2*b*(a-b);
}else{
area=a*(b+a/8);
}
if(abs(b)<EPS){
println("1");
}else if(abs(a)<EPS){
println("0.5");
}else{
println(area/(2*a*b)+"");
}
}
}
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- 2726p 46位1624 -> 1654
復帰完了…というところです.
0 件のコメント:
コメントを投稿