P17134 [KOI 2026 #1] 邻居

· · 题解

思路

可以直接暴力枚举,对每个学生 i,遍历其他学生 j,逐一判断是否满足题目已经给出的邻居条件,最后计数。

AC Code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=3e3+10;
int a[N]; 

int main(){
    ios::sync_with_stdio(0);cin.tie(0);
    int n,k1,k2;
    cin>>n>>k1>>k2;
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++){
        int cnt=0;
        for(int j=1;j<=n;j++){
            if(i==j) continue;
            if(a[i]==a[j]) {
                if(abs(i-j)<=k1) cnt++;
            }else{
                if(abs(i-j)<=k2) cnt++;
            }
        }
        cout<<cnt<<" ";
    }

    return 0;
}