夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

よわい

ARC3完、TopCoder1完(1096->1105)
まわりがどんどんDiv.1いっててあせる・・・

ARC6 A

#include <cstdio>
int e[6], b, l[6];
int main() {
    for (int i=0; i<6; i++) {
        scanf("%d",&e[i]);
    }
    scanf("%d",&b);
    for (int i=0; i<6; i++) {
        scanf("%d",&l[i]);
    }
    int cnt=0, j=0;
    for (int i=0; i<6; i++) {
        for (; j<6; j++) {
            if (e[i]==l[j]) {
                cnt++;
                break;
            } else if (e[i]<l[j]) {
                break;
            }
        }
    }
    if (cnt==6) {
        puts("1");
    } else if (cnt==5) {
        bool flag=false;
        for (int i=0; i<6; i++) if (l[i]==b) flag=true;
        if (flag) puts("2");
        else puts("3");
    } else if (cnt==4) {
        puts("4");
    } else if (cnt==3) {
        puts("5");
    } else {
        puts("0");
    }
}

ARC6 B

こういう入力めんどい

#include <cstdio>
#include <iostream>
using namespace std;
int n, l, g;
string amida[20], goal;
int main() {
    scanf("%d%d",&n,&l);
    getline(cin,goal);
    for (int i=0; i<l; i++) {
        getline(cin, amida[i]);
    }
    getline(cin, goal);
    for (int i=0; i<2*n-1; i++) if (goal[i]=='o') g=i;
    for (int i=l-1; i>=0; i--) {
        if (g>=2&&amida[i][g-1]=='-') g-=2;
        else if (g<=2*n-3&&amida[i][g+1]=='-') g+=2;
    }
    printf("%d\n",g/2+1);
}

ARC6 C

あんまにぶたん使う必要もなかったという

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
int n, w[50];
vector<int> vc;
int main() {
    scanf("%d",&n);
    for (int i=0; i<n; i++) scanf("%d",&w[i]);
    for (int i=0; i<n; i++) {
        sort(vc.begin(), vc.end());
        int pos=lower_bound(vc.begin(), vc.end(), w[i])-vc.begin();
        if (pos==vc.size()) vc.push_back(w[i]);
        else {
            vc[pos]=w[i];
        }
    }
    printf("%d\n",vc.size());
}

EasyConversionMachine

これは簡単なんだけどさ…

class EasyConversionMachine {
public:
   string isItPossible( string originalWord, string finalWord, int k ) {
        int cnt=0, len=originalWord.length();
        for (int i=0; i<len; i++) {
            if (originalWord[i]!=finalWord[i]) cnt++;
        }
        if (cnt<=k&&(k-cnt)%2==0) return "POSSIBLE";
        else return "IMPOSSIBLE";
   }
};

Medは…

注意力&英語力でうまくシュミレートしたら解けるとか色々とあれ
2完したら50位以内とかやばすぎ、というか2完少なすぎ