提出 #74085182


ソースコード 拡げる

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define MOD 1000000007
#define INF 1e18
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define endl "\n"
#define vi vector<int>
#define vs vector<string>
#define pii pair<int, int>
#define mii map<int, int>
#define seti set<int>
#define all(x) x.begin(), x.end()
#define rep(i, a, b) for (int i = a; i < b; i++)
#define pr(a) cout<<a<<endl;
#define printList(a) for (auto &x : a) cout << x << " ";cout<<endl;
#define printMap(a) for (auto &x : a) cout << x.ff << " " << x.ss << endl;
#define PI 3.1415926535897932384626
#define fastio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define setbits(x) __builtin_popcountll(x)
#define zrobits(x) __builtin_ctzll(x)
#define ps(x,y) fixed<<setprecision(y)<<x
#define w(x) int x; cin>>x; while(x--)
#define sortall(x) sort(all(x))
#define vvi vector<vector<int>>
#define vvvi vector<vector<vector<int>>>
#define vpii vector<pii>
#define matrix(N,M) vvi matrix(N, vi(M, 0));
#define printMatrix(matrix) for(auto &x:matrix){for(auto &y:x)cout<<y<<" ";cout<<endl;}
#define inputMatrix(matrix) for(auto &x:matrix)for(auto &y:x)cin>>y;
#define sortMatrix(matrix) for(auto &x:matrix)sortall(x);
#define rotateMatrix(matrix) reverse(all(matrix));for(int i=0;i<matrix.size();i++)for(int j=0;j<i;j++)swap(matrix[i][j],matrix[j][i]);
#define matrixSum(matrix) int sum=0;for(auto &x:matrix)for(auto &y:x)sum+=y;cout<<sum<<endl;
#define matrixProduct(matrix) int product=1;for(auto &x:matrix)for(auto &y:x)product*=y;cout<<product<<endl;
#define matrixMax(matrix) int mx=INT_MIN;for(auto &x:matrix)for(auto &y:x)mx=max(mx,y);cout<<mx<<endl;
#define matrixMin(matrix) int mn=INT_MAX;for(auto &x:matrix)for(auto &y:x)mn=min(mn,y);cout<<mn<<endl;
#define matrixTranspose(matrix) for(int i=0;i<matrix.size();i++)for(int j=0;j<i;j++)swap(matrix[i][j],matrix[j][i]);
#define max3(a,b,c) max(a,max(b,c))
#define min3(a,b,c) min(a,min(b,c))
#define max4(a,b,c,d) max(max(a,b),max(c,d))
#define min4(a,b,c,d) min(min(a,b),min(c,d))
#define maxEle(a) *max_element(all(a))
#define minEle(a) *min_element(all(a))
#define sumEle(a) accumulate(all(a),0)
#define productEle(a) accumulate(all(a),1,multiplies<int>())
#define maxIndex(a) max_element(all(a))-a.begin()
#define minIndex(a) min_element(all(a))-a.begin()
#define findIndex(a,x) find(all(a),x)-a.begin()
#define findEle(a,x) find(all(a),x)!=a.end()
#define countEle(a,x) count(all(a),x)
#define lowerEle(a,x) lower_bound(all(a),x)-a.begin()
#define upperEle(a,x) upper_bound(all(a),x)-a.begin()
#define gcd(a,b) __gcd(a,b)
#define hi cout<<"Hello\n";
#define yes cout<<"Yes\n";
#define no cout<<"No\n";

int Binary_exp(int a, int b, int c ){
    int ans = 1;
    while(b){
        if(b&1){
            ans =(ans*1LL*a) % c;
        }
        a = (a*1LL*a) % c;
        b/=2;
    }
    return ans;
}

int C(int n, int r) { if (r > n - r) r = n - r; int ans = 1; for (int i = 1; i <= r; i++) { ans *= n - r + i; ans /= i; } return ans; }
int modInv(int a) { return Binary_exp(a, MOD - 2, MOD); }
bool isPrime(int n){ if(n<=1)return false; for(int i=2;i*i<=n;i++)if(n%i==0)return false; return true; }

template<class T>ostream &operator<<(ostream &os,const vector<T> &p){for(auto &it:p)os<<it<<' ';return os;}
template<class T>void dbs(string str,T t){cerr<<str<<":"<<t<<endl;}
template<class T,class...S>void dbs(string str,T t,S... s){int idx=str.find(',');cerr<<str.substr(0,idx)<<":"<<t<<",";dbs(str.substr(idx+1),s...);}

void solved(){
    int n, l, r;
    cin >> n >> l >> r;
    string s;
    cin >> s;

    int cnt = 0;
    vector<int> f(26, 0);
    
    int p = 0;  
    int q = 0; 

    for (int j = 0; j < n; ++j) {
        int tar = j - l;
        while (q <= tar && q < n) {
            if (q >= 0) {
                f[s[q] - 'a']++;
            }
            q++;
        }

        int tar1 = j - r;
        while (p < tar1) {
            if (p >= 0 && p < n) {
                f[s[p] - 'a']--;
            }
            p++;
        }

        if (j >= l) {
            cnt += f[s[j] - 'a'];
        }
    }

    cout << cnt << endl;
}

signed main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t = 1;
    //cin>>t;
    while(t--){
        solved();
    }
    return 0;
}

提出情報

提出日時
問題 C - Comfortable Distance
ユーザ s_mtCF
言語 C++23 (GCC 15.2.0)
得点 300
コード長 4426 Byte
結果 AC
実行時間 4 ms
メモリ 4044 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 23
セット名 テストケース
Sample sample00.txt, sample01.txt, sample02.txt
All sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt
ケース名 結果 実行時間 メモリ
sample00.txt AC 1 ms 3604 KiB
sample01.txt AC 1 ms 3636 KiB
sample02.txt AC 1 ms 3616 KiB
testcase00.txt AC 1 ms 3424 KiB
testcase01.txt AC 1 ms 3604 KiB
testcase02.txt AC 1 ms 3852 KiB
testcase03.txt AC 2 ms 3904 KiB
testcase04.txt AC 1 ms 3844 KiB
testcase05.txt AC 2 ms 3908 KiB
testcase06.txt AC 1 ms 3900 KiB
testcase07.txt AC 2 ms 3796 KiB
testcase08.txt AC 2 ms 3976 KiB
testcase09.txt AC 2 ms 3924 KiB
testcase10.txt AC 2 ms 3908 KiB
testcase11.txt AC 2 ms 3976 KiB
testcase12.txt AC 4 ms 3832 KiB
testcase13.txt AC 3 ms 3924 KiB
testcase14.txt AC 2 ms 3868 KiB
testcase15.txt AC 2 ms 4044 KiB
testcase16.txt AC 3 ms 3908 KiB
testcase17.txt AC 3 ms 3992 KiB
testcase18.txt AC 2 ms 3856 KiB
testcase19.txt AC 3 ms 3832 KiB