Submission #238691

#TimeUsernameProblemLanguageResultExecution timeMemory
238691VimmerSpirale (COCI18_spirale)C++14
80 / 80
60 ms512 KiB
#include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-O3") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("fast-math") //#pragma GCC optimize("no-stack-protector") #define F first #define S second #define sz(x) int(x.size()) #define pb push_back #define N 300001 #define M ll(1e9 + 7) #define inf 1e9 + 1e9 using namespace std; //using namespace __gnu_pbds; typedef long double ld; typedef long long ll; typedef short int si; typedef array <int, 2> a2; //typedef tree <int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; int a[105][105], kr, n, m; void upd(int x, int y, int val){if (0 <= x && x < n && 0 <= y && y < m) {kr++; a[x][y] = min(a[x][y], val);}} int main() { //freopen("input.txt", "r", stdin); //freopen("output4.txt", "w", stdout); ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0); int k; cin >> n >> m >> k; for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) a[i][j] = 1e9; for (int i = 0; i < k; i++) { int x, y, t, len = 1, dir = 1, val = 1; kr = 0; cin >> x >> y >> t; x--; y--; upd(x, y, val); while (kr < n * m) { int kol = 0; if (t == 1) { while (kol < len) { kol++; val++; if (dir == 2) x++; else if (dir == 1) x--; else if (dir == 3) y++; else y--; upd(x, y, val); } if (dir == 1) dir = 4; else if (dir == 4) {len++; dir = 2;} else if (dir == 2) dir = 3; else if (dir == 3) {len++; dir = 1;} } else { while (kol < len) { kol++; val++; if (dir == 2) x++; else if (dir == 1) x--; else if (dir == 3) y++; else y--; upd(x, y, val); } if (dir == 1) dir = 3; else if (dir == 3) {len++; dir = 2;} else if (dir == 2) dir = 4; else if (dir == 4) {len++; dir = 1;} } } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) cout << a[i][j] << " "; cout << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...