へんてこのブログ

日々気づいたことや、最近やっていることを書いています

GCJJ練習 問題A. 数珠繋ぎ

GCJ2012が本日の未明より登録開始ということで、練習でもしようかなとGCJJ2011の練習問題から解いてみました。
GCJJ2011はjavaで参戦しましたが、今回はC++で参戦します。
C++のファイル入出力はjavaよりも簡単ですね。

問題文:http://code.google.com/codejam/contest/1343486/dashboard

#include<iostream>
#include<vector>
#include <fstream>
#include<string>

using namespace std;

int main() {

    //ifstream cin("A-small-practice.in");
    //ofstream cout("small_data.txt");

    ifstream cin("A-large-practice.in");
    ofstream cout("large_data.txt");

    int t;
    cin >> t;
    for(int i=0;i<t;i++) {
        int n,k;
        cin >> n >> k;

        vector<int> ni;
        for(int j=0; j<30; j++){
            ni.push_back(k % 2);
            k = k / 2;
        }

        bool flag = true;
        for(int j=0;j < n;j++) {
            if(ni[j] == 0) {
                flag = false;
            }
        }
        cout << "Case #" << i+1 << ": ";
        if(flag) {
            cout << "ON" << endl;
        }else {
            cout << "OFF" << endl;
        }
    }
    return 0;
}