Submission #1185695

#TimeUsernameProblemLanguageResultExecution timeMemory
1185695sano말 (IOI15_horses)C++20
0 / 100
576 ms45800 KiB
//#pragma GCC optimize("O3") //#pragma GCC target("tune=native") //#pragma GCC optimize("O3,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include "horses.h" #include<iostream> #include<vector> #include<queue> #include<deque> #include<string> #include<fstream> #include<algorithm> #include <iomanip> #include<map> #include <set> #include <unordered_map> #include <stack> #include <unordered_set> #include <cmath> #include <cstdint> #include <cassert> #include <bitset> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> #define shit short int #define ll long long //#define int ll #define For(i, n) for(int i = 0; i < (int)n; i++) #define ffor(i, a, n) for(int i = (int)a; i < (int)n; i++) #define rfor(i, n) for(int i = (int)n; i >= (int)0; i--) #define rffor(i, a, n) for(int i = (int)n; i >= (int)a; i--) #define vec vector #define ff first #define ss second #define pb push_back #define pii pair<int, int> #define NEK 2000000000 #define mod 1000000007 #define mod2 1000000009 #define rsz resize #define prv1 47 #define prv2 43 #define D 8 #define trav(a,x) for (auto& a: x) #define pb push_back #define ub upper_bound #define lb lower_bound #define all(x) (x).begin(), (x).end() #define sig 0.0000001 using namespace std; //using namespace __gnu_pbds; //template <typename T1, typename T2> //using indexed_set = tree<pair<T1, T2>, null_type, less<pair<T1, T2>>, rb_tree_tag, tree_order_statistics_node_update>; class intervalac { ll n; vec<ll> l, r, in, lp; void update(ll s) { in[s] = (max(in[s * 2], in[s * 2 + 1]) * lp[s]) % mod; return; } public: void postav(ll vel) { n = 1; while (n < vel) n *= 2; l.resize(2 * n); r.resize(2 * n); in.resize(2 * n, 1); lp.resize(2 * n, 1); For(i, n) { l[i + n] = r[i + n] = i; } rffor(i, 1, n - 1) { l[i] = l[i * 2]; r[i] = r[i * 2 + 1]; } return; } void zmen(ll a, ll b, ll k, ll s = 1) { if (l[s] > b || r[s] < a) return; if (a <= l[s] && r[s] <= b) { lp[s] *= k; lp[s] %= mod; return; } zmen(a, b, k, s * 2); zmen(a, b, k, s * 2 + 1); update(s); return; } ll daj() { return in[1]; } }; ll umocni(ll a, ll b) { ll vys = 1; while (b) { if (b & 1) { vys *= a; vys %= mod; } a *= a; a %= mod; b /= 2; } return vys; } vec<ll> x, y; intervalac seg; void zmen_x(ll s, ll k) { seg.zmen(s, x.size() - 1, umocni(x[s], mod - 2)); x[s] = k; seg.zmen(s, x.size() - 1, x[s]); return; } void zmen_y(ll s, ll k) { seg.zmen(s, s, umocni(y[s], mod - 2)); y[s] = k; seg.zmen(s, s, y[s]); return; } int init(int n, int x2[], int y2[]) { x.resize(n, 1); y.resize(n, 1); seg.postav(n); For(i, n) { zmen_x(i, x2[i]); zmen_y(i, y2[i]); } return seg.daj(); } int updateX(int pos, int val) { zmen_x(pos, val); return seg.daj(); } int updateY(int pos, int val) { zmen_y(pos, val); return seg.daj(); } /* signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int t; t = 1; //cin >> t; For(i, t) { ifstream cin("09.in"); ofstream cout("01.out"); int n, m; cin >> n; int s[500], x[15000], y[15000], p[15000], q[15000]; For(i, n) cin >> s[i]; cin >> m; For(i, m) cin >> x[i] >> y[i]; int r = findSwapPairs(n, s, m, x, y, p, q); cout << r << '\n'; For(i, r) { cout << p[i] << ' ' << q[i] << '\n'; } } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...