Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)-模拟-C. Jury Marks-

来源:互联网 发布:js 实现数据实时更新 编辑:程序博客网 时间:2024/07/24 02:01

http://codeforces.com/contest/831/problem/C
有一个人,他有一个初始分数,然后是m个评委,给他的分数(可正可负),然后再给你n个数,每个数都是积分过程的分数,问你初始解有多少种可能。

#include <bits/stdc++.h>using namespace std;const int maxn=4000007;int main(){   int sum[maxn];    int a[maxn];    int k[maxn];    bool vis[maxn];    int m,n;    scanf("%d%d",&m,&n);  vector<int>q;   sum[0]=0;    for(int i=1;i<=m;i++){        scanf("%d",&a[i]);         sum[i]=a[i]+sum[i-1];    }    sort(sum+1,sum+m+1);     int len=unique(sum+1,sum+1+m)-(sum+1);    for(int i=0;i<n;i++)    scanf("%d",&k[i]);    for(int i=0;i<n;i++)        for(int j=1;j<=len;j++)          q.push_back(k[i]-sum[j]);          map<int,int>mp;    for(int i=0;i<q.size();i++)         mp[q[i]]++;    int all=0;    for(int i=0;i<q.size();i++)         if(mp[q[i]]>=n)         {all++;mp[q[i]]=0;}    printf("%d\n",all);    return 0;}
阅读全文
0 0
原创粉丝点击