2010年9月13日月曜日

PKU Judge Online 1218 THE DRUNK JAILER

■1218 THE DRUNK JAILER

□Problem
ある刑務所には部屋がn個(1,2,3,…,n)ある.
ある夜,退屈していた看守は,ゲームを始めた.
1.各部屋(1,2,3,…)の鍵を開けていく.
2.1つ飛ばしに各部屋(2,4,6,…)の鍵を閉めていく.
3.2つ飛ばしに各部屋(3,6,9,…)の鍵を開けていく.

n.n-1つ飛ばしに各部屋(nのみ)の鍵を開けていく.
最終的に,鍵が空いている部屋はいくつあるか.

□Solution
やるだけ.

□Code

package p1218;

import java.util.*;
import java.lang.*;
import java.math.*;

public class Main{
Scanner sc=new Scanner(System.in);

void run(){
for(int t=sc.nextInt();t>0;t--){
int n=sc.nextInt();
int[] a=new int[n];
// 0-lock
// 1-unlock
for(int k=1;k<=n;k++)
for(int i=k-1;i<n;i+=k)
a[i]=1-a[i];
int ans=0;
for(int e:a)
ans+=e;
println(""+ans);
}
}

void println(String s){
System.out.println(s);
}

void print(String s){
System.out.print(s);
}

public static void main(String[] args){
new Main().run();
}
}

0 件のコメント: