Submission #1206686

#TimeUsernameProblemLanguageResultExecution timeMemory
1206686vux2codeGenetics (BOI18_genetics)C++20
100 / 100
795 ms18324 KiB
// Src : Vux2Code /* Note : */ #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<ll, ll> pll; #define fi first #define se second #define pusb push_back #define popb pop_back #define pusf push_front #define popf pop_front #define vec3d vector<vector<vector<ll>>> #define vec2d vector<vector<ll>> #define vec1d vector<ll> vec3d set3 (ll x, ll y, ll z, ll val = 0) {return vec3d (x, vec2d (y, vec1d (z, val)));} vec2d set2 (ll x, ll y, ll val = 0) {return vec2d (x, vec1d (y, val));} template<typename T> using rvs_pq = std::priority_queue<T, std::vector<T>, std::greater<T>>; #define forinc(i, a, b) for (ll i = (a); i <= (b); ++i) #define fordec(i, a, b) for (ll i = (a); i >= (b); --i) #define foreach(i, j) for (ll i : (j)) #define all(a) (a).begin (), (a). end () #define uni(a) (a).erase(unique((a).begin(), (a). end ()), (a). end ()) const ll maxN = 41e2 + 5, maxLog = 20, inf64 = 1e18, inf32 = 1e9, mod = 1e9 + 7; void maxi(ll &x, ll y) { x = max(x, y); } void mini(ll &x, ll y) { x = min(x, y); } /* ---------HASHING-------- */ // const base = 31, mod2 = 1e9 + 9; /* ---------BITMASK-------- */ // ll count(ll x) { return __builtin_popcountll(x); } // ll fst(ll x) { return 63 - __builtin_clzll(x); } // ll last(ll x) { return __builtin_ctzll(x); } // bool bit(ll x, ll y) { return ((x >> y) & 1); } ll t = 1; ll n, m, k, w [maxN], sumw, sum [maxN]; char a [maxN] [maxN]; map <char, ll> mp [maxN]; void solve() { cin >> n >> m >> k; forinc (i, 1, n) { forinc (j, 1, m) { cin >> a [i] [j]; } } random_device rd; mt19937 gen (124523); uniform_int_distribution<> distr (1, INT_MAX); forinc (i, 1, n) { w [i] = distr (gen); sumw += w [i]; } forinc (i, 1, n) { forinc (j, 1, m) { mp [j] [a [i] [j]] += w [i]; } } forinc (i, 1, n) { forinc (j, 1, m) { for (pll k : mp [j]) { if (k. fi != a [i] [j]) sum [i] += k. se; } } } forinc (i, 1, n) { if (sum [i] == k * (sumw - w [i])) { cout << i; return; } } } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // #define TASK "E:/Code/CP/task" // if (fopen (TASK".inp", "r")) { // freopen (TASK".inp", "r", stdin); // freopen (TASK".out", "w", stdout); // } // cin >> t; while (t--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...