1 solutions
-
0
C++ :
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int MAXN = 5, MAXW = 5; struct Wheel { int speed; vector<pair<int, int> > gap; }; int N, flag[360]; Wheel W[MAXN]; int main() { freopen("spin.in", "r", stdin); freopen("spin.out", "w", stdout); N = MAXN; for (int i = 0; i < N; i++) { int tot_gap; scanf("%d%d", &W[i].speed, &tot_gap); for (int j = 0; j < tot_gap; j++) { int start, len; scanf("%d%d", &start, &len); W[i].gap.push_back(make_pair(start, len)); } } bool find = false; for (int t = 0; t < 360 && !find; t++) { memset(flag, 0, sizeof(flag)); for (int i = 0; i < N; i++) { const int &speed = W[i].speed; vector<pair<int, int> > &gap = W[i].gap; for (int j = 0; j < gap.size(); j++) { for (int k = 0; k <= gap[j].second; k++) flag[(gap[j].first + k) % 360]++; gap[j].first = (gap[j].first + speed) % 360; } } for (int i = 0; i < 360; i++) if (flag[i] == N) {find = true; printf("%d\n", t); break;} } if (!find) printf("none\n"); fclose(stdin); fclose(stdout); return 0; }
- 1
Information
- ID
- 19398
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By