Submission #1056355

#TimeUsernameProblemLanguageResultExecution timeMemory
1056355panRelativnost (COCI15_relativnost)C++17
0 / 140
2588 ms56660 KiB
#include <bits/stdc++.h> //#include "bits_stdc++.h" //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #define endl '\n' #define f first #define s second #define pb push_back #define mp make_pair #define lb lower_bound #define ub upper_bound #define input(x) scanf("%lld", &x); #define input2(x, y) scanf("%lld%lld", &x, &y); #define input3(x, y, z) scanf("%lld%lld%lld", &x, &y, &z); #define input4(x, y, z, a) scanf("%lld%lld%lld%lld", &x, &y, &z, &a); #define print(x, y) printf("%lld%c", x, y); #define show(x) cerr << #x << " is " << x << endl; #define show2(x,y) cerr << #x << " is " << x << " " << #y << " is " << y << endl; #define show3(x,y,z) cerr << #x << " is " << x << " " << #y << " is " << y << " " << #z << " is " << z << endl; #define all(x) x.begin(), x.end() #define discretize(x) sort(x.begin(), x.end()); x.erase(unique(x.begin(), x.end()), x.end()); #define FOR(i, x, n) for (ll i =x; i<=n; ++i) #define RFOR(i, x, n) for (ll i =x; i>=n; --i) using namespace std; //using namespace __gnu_pbds; //#define ordered_set tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> //#define ordered_multiset tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> typedef long long ll; typedef long double ld; typedef pair<ld, ll> pd; typedef pair<string, ll> psl; typedef pair<ll, ll> pi; typedef pair<ll, pi> pii; typedef pair<pi, pi> piii; ll const mod = 10007; ll a[100005], b[100005],n, c, q, idx; struct node { int s, e, m; ll dp[30]; node * l, * r; void init() { fill(dp, dp+c+1, 0); dp[1] = a[s]%mod; dp[0] = b[s]%mod; //show2(s,e); //show3(dp[0], dp[1], dp[2]); } void merge() { fill(dp, dp+c+1, 0); for (ll i=0; i<=c; ++i) for (ll j=0; j<=c; ++j) dp[min(i+j, c)] = (dp[min(i+j, c)] + (l->dp[i]*r->dp[j])%mod)%mod; //show2(s,e); //show3(dp[0], dp[1], dp[2]); } node(int S, int E) { s = S, e = E, m = (s + e) / 2; if (s != e) { l = new node(s, m); r = new node(m + 1, e); merge(); } else {init();} } void update(int X) { if (s == e) init(); else { if (X <= m) l -> update(X); else r -> update(X); merge(); } } ll query() {return dp[c];} }* root; int main() { input2(n, c); for (ll i=1; i<=n; ++i) input2(a[i], b[i]); root = new node(1, n); input(q); while (q--) { input(idx); input2(a[idx], b[idx]); root->update(idx); print(root->query(), '\n'); //show3(root->dp[0], root->dp[1], root->dp[2]); } return 0; }

Compilation message (stderr)

relativnost.cpp: In function 'int main()':
relativnost.cpp:13:27: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 | #define input2(x, y) scanf("%lld%lld", &x, &y);
      |                      ~~~~~^~~~~~~~~~~~~~~~~~~~
relativnost.cpp:87:2: note: in expansion of macro 'input2'
   87 |  input2(n, c);
      |  ^~~~~~
relativnost.cpp:13:27: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 | #define input2(x, y) scanf("%lld%lld", &x, &y);
      |                      ~~~~~^~~~~~~~~~~~~~~~~~~~
relativnost.cpp:88:26: note: in expansion of macro 'input2'
   88 |  for (ll i=1; i<=n; ++i) input2(a[i], b[i]);
      |                          ^~~~~~
relativnost.cpp:12:23: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 | #define input(x) scanf("%lld", &x);
      |                  ~~~~~^~~~~~~~~~~~
relativnost.cpp:90:2: note: in expansion of macro 'input'
   90 |  input(q);
      |  ^~~~~
relativnost.cpp:12:23: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 | #define input(x) scanf("%lld", &x);
      |                  ~~~~~^~~~~~~~~~~~
relativnost.cpp:93:3: note: in expansion of macro 'input'
   93 |   input(idx);
      |   ^~~~~
relativnost.cpp:13:27: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 | #define input2(x, y) scanf("%lld%lld", &x, &y);
      |                      ~~~~~^~~~~~~~~~~~~~~~~~~~
relativnost.cpp:94:3: note: in expansion of macro 'input2'
   94 |   input2(a[idx], b[idx]);
      |   ^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...