제출 #857425

#제출 시각아이디문제언어결과실행 시간메모리
857425lbadea1000Squirrel (RMI18_squirrel)C++17
25 / 100
4792 ms600 KiB
#include <bits/stdc++.h> using namespace std; int ldir[8] = {-1, -1, 0, 1, 1, 1, 0, -1}; int cdir[8] = { 0, 1, 1, 1, 0, -1, -1, -1}; int ans; bool gcd(int a, int b) { // cout << a + 1 << ' ' << b + 1 << endl; return (__gcd(a, b) == 1); } void generateFractal(int l, int c, int dir, int size) { if(size == 0) return; //cout << "tree : " << endl; for(int i = 0; i < size; i++) { l += ldir[dir]; c += cdir[dir]; ans += gcd(l, c); } //cout << endl; int dir1 = (dir - 1 + 8) % 8, dir2 = (dir + 1) % 8; int l1 = l, c1 = c; //cout << dir1 << " Branch 1 : " << endl; for(int i = 0; i < size / 2; i++) { l1 += ldir[dir1]; c1 += cdir[dir1]; ans += gcd(l1, c1); } // cout << dir2 << " Branch 2 : " << endl; int l2 = l, c2 = c; for(int i = 0; i < size / 2; i++) { l2 += ldir[dir2]; c2 += cdir[dir2]; ans += gcd(l2, c2); } // cout << endl << endl; generateFractal(l1, c1, (dir1 - 1 + 8) % 8, size / 2); generateFractal(l1, c1, (dir1 + 1 + 8) % 8, size / 2); generateFractal(l2, c2, (dir2 - 1 + 8) % 8, size / 2); generateFractal(l2, c2, (dir2 + 1 + 8) % 8, size / 2); } int main() { int m, n, f; cin >> m >> n >> f; ans = 0; for(int i = 0; i < f; i++) { int l, c, size; cin >> l >> c >> size; l--; c--; ans += gcd(l, c); generateFractal(l, c, 0, size); } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...