Codeforces Round #445 Div. 2 A ACM ICPC+B Vlad and Cafes

A

emmmmmm……虽然只有6个数……拿来练dfs好了……

orz……读题啊……6个人分两组,每组三个人,问6个数能不能分为和相等的两组。(=-=没看到三个人,还WA了orz)

#include<iostream>       //水过……
using namespace std;
int n,a[7];
int sum=0;
int flag=0;
int cnt=0;
void dfs(int x,int i)
{
    if(x==sum-x&&i==7&&cnt==3)
    {
        flag=1;
        return ;
    }
    if(i==7) return ;
    cnt++;
    dfs(x+a[i],i+1);
    cnt--;
    dfs(x,i+1);
}
int main()
{
 for(int i=1;i<=6;i++)
    {
        cin>>a[i];
        sum+=a[i];
    }
    dfs(0,1);
    if(flag)
        cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    return 0;
}

 B

emmm……就记一下数,然后按顺序扫一遍……看哪个个数先减到0……就可以了

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<map>
using namespace std;
const int N=2e5;
int n;
int a[N];
map<int,int>p;
int main()
{
    scanf("%d",&n);
    p.clear();
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        p[a[i]]++;
    }
    for(int i=0;i<n;i++)
    {
        p[a[i]]--;
        if(p[a[i]]==0)
        {
            cout<<a[i]<<endl;
            break;
        }
    }
    return 0;
}

 

posted @ 2017-11-15 20:29  #Egoist#  阅读(222)  评论(0编辑  收藏  举报