2011年6月21日火曜日

CodeForces Beta Round #74 Div2

報告です

A Cable Way
Passed System Test


R、G、Bそれぞれの乗り場にそれぞれr,g,b人の子供が居る。
この子供らを全員乗せ、山頂まで送り届けたい。
乗り場にケーブルカーが到着する度に、乗り場に居る生徒を二人までケーブルカーに載せることが出来る。
ケーブルカーはR→G→B→R→G→B。。。とぐるぐる回り、全員ケーブルカーに載せることが出来れば、そこから山頂へと出発する。
R乗り場からスタートし、各乗り場間の移動には一分、山頂まで行くにはどの乗り場からであっても30分かかる。
全員を載せて山頂に着くのは何分後か?



#include <iostream>
#include <vector>
#include <string>
#include <string.h>
#include <map>
#include <set>
#include <algorithm>
#include <time.h>
#include <cmath>


using namespace std;


bool check(int r,int g, int b){
    return (r>0||g>0||b>0);
}


int main()
{
    int r,g,b;
    cin>>r>>g>>b;
    int ans = 0;
    if(!check(r,g,b)){
        cout << ans << endl;
        return 0;
    }
    while(1){
        r-=2;
        if(!check(r,g,b)) break;
        ans++; g-=2;
        if(!check(r,g,b)) break;
        ans++; b-=2;
        if(!check(r,g,b)) break;
        ans++;
    }
    cout << ans+30 << endl;
}

B African Crossword
Passed System Test


n行m列の、全て小文字のアルファベットで構成されたクロスワードがある。
i行j列の文字は、同じ行、或いは同じ列に、同じ文字が無ければ出力される。
法則にしたがい文字を出力せよ。




#include <iostream>
#include <vector>
#include <string>
#include <string.h>
#include <map>
#include <set>
#include <algorithm>
#include <time.h>
#include <cmath>


using namespace std;


int main(){
    string ans = "";
    int row,column;
    cin>>row>>column;
    string code[100];
    bool flag;
    for(int i = 0;i < row;i++) cin>>code[i];
    for(int i = 0;i < row;i++) for(int j = 0;j < (int) code[i].length();j++){
        flag = true;
        for(int f = 0;f < row;f++){
            if(f == i) continue;
            if(code[f][j] == code[i][j]){
                flag = false;
                break;
            }
        }
        if(!flag) continue;
        for(int f = 0;f < (int) code[i].length();f++){
            if(f == j) continue;
            if(code[i][f] == code[i][j]){
                flag = false;
                break;
            }
        }
        if(!flag) continue;
        ans += code[i][j];
    }
    cout << ans << endl;
}

Rating 1344→1338(-6)

C,D,Eは見たが分からず。
Eは問題を解けそうだったが、Stack Overflowを起こしてしまい、断念。
他の人の回答を見たところDPっぽかったが、パッと見ただけなのでよく分からず。
要復習。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。