Submission #880780

#TimeUsernameProblemLanguageResultExecution timeMemory
880780WeIlIaN스파이 (JOI13_spy)C++14
100 / 100
111 ms16420 KiB
#include <iostream> #include <algorithm> #include <vector> #include <cstring> #include <map> #include <unordered_map> #include <set> #include <queue> #include <stack> #include <cmath> #include <climits> #include <iomanip> using namespace std; #define MOD 1000000007 #define fir first #define sec second #define mp make_pair #define pushf push_front #define pushb push_back #define popf pop_front #define popb pop_back #define all(a) a.begin(), a.end() #define FOR(i, s, e) for(int i = s; i < e; i++) #define RFOR(i, s, e) for(int i = e-1; i >= s; i--) #define REP(i, n) FOR(i, 0, n) #define RREP(i, n) RFOR(i, 0, n) #pragma GCC optimize(" unroll-loops") #pragma gcc optimize("Ofast") #pragma GCC optimization("Ofast") typedef long long ll; typedef pair<int, int> pii; typedef vector<int> vi; typedef pair<ll, ll> pll; typedef vector<ll> vll; typedef vector<bool> vb; typedef vector<char> vc; typedef vector<string> vs; typedef vector<pii> vpii; typedef vector<pll> vpll; typedef vector<vi> vvi; typedef vector<vll> vvll; typedef vector<vb> vvb; typedef vector<vc> vvc; typedef vector<vpii> vvpii; typedef vector<vpll> vvpll; typedef queue<int> qi; typedef queue<ll> qll; typedef queue<pii> qpii; typedef queue<pll> qpll; typedef deque<int> dqi; typedef deque<ll> dqll; typedef deque<pii> dqpii; typedef deque<pll> dqpll; typedef priority_queue<int> pqi; typedef priority_queue<ll> pqll; typedef priority_queue<pii> pqpii; typedef priority_queue<pll> pqpll; typedef priority_queue<int, vi, greater<int> > r_pqi; typedef priority_queue<ll, vll, greater<ll> > r_pqll; typedef priority_queue<pii, vpii, greater<pii> > r_pqpii; typedef priority_queue<pll, vpll, greater<pll> > r_pqpll; vi child[2][2003]; int n, m, a, r, s, root[2], f[2003][2003]; void dfs1(int u) { for(auto v : child[0][u]) { REP(i, n) { f[v][i] += f[u][i]; } dfs1(v); } } void dfs2(int u) { for(auto v : child[1][u]) { REP(i, n) { f[i][v] += f[i][u]; } dfs2(v); } } int main() { scanf("%d%d", &n, &m); REP(i, n) { REP(j, 2) { scanf("%d", &a); if(a == 0) root[j] = i; else child[j][--a].push_back(i); } } REP(i, m) { scanf("%d%d", &r, &s); f[--r][--s]++; } dfs1(root[0]); dfs2(root[1]); REP(i, n) { printf("%d\n", f[i][i]); } return 0; }

Compilation message (stderr)

spy.cpp:31: warning: ignoring '#pragma gcc optimize' [-Wunknown-pragmas]
   31 | #pragma gcc optimize("Ofast")
      | 
spy.cpp:32: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
   32 | #pragma GCC optimization("Ofast")
      | 
spy.cpp:30:37: warning: bad option '-f unroll-loops' to pragma 'optimize' [-Wpragmas]
   30 | #pragma GCC optimize(" unroll-loops")
      |                                     ^
spy.cpp:70:16: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
   70 | void dfs1(int u) {
      |                ^
spy.cpp:79:16: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
   79 | void dfs2(int u) {
      |                ^
spy.cpp:88:10: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
   88 | int main() {
      |          ^
spy.cpp: In function 'int main()':
spy.cpp:89:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   89 |     scanf("%d%d", &n, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~
spy.cpp:92:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   92 |             scanf("%d", &a);
      |             ~~~~~^~~~~~~~~~
spy.cpp:99:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   99 |         scanf("%d%d", &r, &s);
      |         ~~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...