C - Perform the Combo
Problem link: https://codeforces.com/contest/1311/problem/C
Solution:
Solution:
#include<bits/stdc++.h> using namespace std ; typedef long long ll; typedef pair<ll, ll> Pll; #define F first #define S second #define MP make_pair #define PB push_back #define rad(X) cout << (X) << endl #define ASH(X) cout << (X) << " " #define debug(x) cout << #x << " " << x << endl; #define debug2(x,y) cout << #x << " " << x << " " << #y << " " << y << endl; #define FOR(I,A,B) for(int I = (A); I <= (B); I++) #define cir(I,B,A) for(int I = (A); I >=(B); I--) #define MS0(X) memset((X), 0, sizeof((X))) #define MS1(X) memset((X), -1, sizeof((X))) #define SORT(c) (sort(c.begin(),c.end())) #define SORT_UNIQUE(c) (sort(c.begin(),c.end()), c.resize(distance(c.begin(),unique(c.begin(),c.end())))) #define GET_POS(c,x) (lower_bound(c.begin(),c.end(),x)-c.begin()) #define CASES int ___T; cin >> ___T; for(int cs=1;cs<=___T;cs++) #define FAST() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); template<typename T>T gcd(T x, T y){if(y==0)return x;else return gcd(y,x%y);} ll fx[] = {1, 1, 0, -1, -1, -1, 0, 1}; ll fy[] = {0, 1, 1, 1, 0, -1, -1, -1}; vector<ll>a,b,c; map<ll,ll>m1,m2,m3; //ll dp[1100][1100]; /************************************************/ void Execute() { ll n, nb, k, q, a, b, c, l, r, d, x, y, p, m; cin >> n >> q; int dp[250][n+2]; string s; cin >> s; for(char i='a'; i<='z'; ++i) { dp[i][0] = 0; } for(char i='a'; i<='z'; ++i) { FOR(j,0,n-1){ if(j==0) { if(i==s[j]) dp[i][0] = dp[i][0]+1; else dp[i][0] = dp[i][0]; } if(j>0 && i == s[j] ){ dp[i][j] = dp[i][j-1]+1; } if(j>0 && i != s[j] ){ dp[i][j] = dp[i][j-1]; } } } map<char,int> mp; while(q--) { cin >> x; for(char i='a'; i<='z'; ++i) { if(x!=0) mp[i]+=dp[i][x-1]; else mp[i]+=dp[i][0]; } } for(char i='a'; i<='z'; ++i) { mp[i]+=dp[i][n-1]; std::cout << mp[i] << " "; } std::cout << '\n'; // aabbccdfe a = 1 2 0 0 0 0 0 0 0 b = 0 0 1 2 0 0 0 0 0 } int32_t main() { #ifndef ONLINE_JUDGE freopen("atomm.txt", "r", stdin); #endif FAST(); CASES { Execute(); } }
Comments
Post a Comment