Saturday, May 28, 2011

SRM507:

Summary:
2011-05-28:

Div 1, Level 1
Div 1, Level 2
Div 1, Level 3
Div 2, Level 1
Div 2, Level 2
Div 2, Level 3

Tutorials:

Division One - Level Three:

Solution

Source Code:

Division One - Level Two:

Solution

Source Code:

Division One - Level One:

Solution

The same with Div2-Level2.

Source Code:

Division Two - Level Three:

Solution

Source Code:

Division Two - Level Two:

Solution

Source Code:

//Sat May 28 11:07:51 CDT 2011
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;

class CubeStickers {
public:
    string isPossible(vector<string> sticker) {
        set<string> s(sticker.begin(), sticker.end());
        colors = vector<string> (s.begin(), s.end());
        if (s.size() < 3)
            return "NO";
        for (int i = 0; i < sticker.size(); i++) {
            mp[sticker[i]]++;
        }
        int faces = 6;
        for (int i = 0; i < colors.size(); i++) {
            if (mp[colors[i]] >= 2)
                faces -= 2;
            else
                faces--;
        }
        return faces > 0 ? "NO" : "YES";
    }
    map<string, int> mp;
    vector<string> colors;
};

Division Two - Level One:

Solution

Source Code:

//Sat May 28 10:50:51 CDT 2011
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;

class CubeAnts {
public:
    int getMinimumSteps(vector<int> pos) {
        int N = pos.size();
        int mmax = 0;
        for (int i = 0; i < N; i++) {
            mmax = max(mmax, getStep(pos[i]));
        }
        return mmax;
    }
    int getStep(int p) {
        switch (p) {
        case 0:
            return 0;
        case 1:
            return 1;
        case 2:
            return 2;
        case 3:
            return 1;
        case 4:
            return 1;
        case 5:
            return 2;
        case 6:
            return 3;
        case 7:
            return 2;
        default:
            return 0;
        }
    }
};

No comments :