Codeforces 785 - A/B/C/D/E - (Undone)

链接:https://codeforces.com/contest/785


A - Anton and Polyhedrons

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
map<string,int> mp;
int n,sum;
string str;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    
    mp.clear();
    mp["Tetrahedron"]=4;
    mp["Cube"]=6;
    mp["Octahedron"]=8;
    mp["Dodecahedron"]=12;
    mp["Icosahedron"]=20;
    
    cin>>n, sum=0;
    while(n--) cin>>str, sum+=mp[str];
    cout<<sum<<endl;
}

 


B - Anton and Classes

#include<bits/stdc++.h>
#define pb(x) push_back(x)
using namespace std;
typedef pair<int,int> P;
#define fi first
#define se second
#define mk(x,y) make_pair(x,y)
const int MAX=2e5+10;

int n,m,x,y;
vector<P> A;
P L,R;


int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);

    cin>>n;
    while(n--)
    {
        cin>>x>>y;
        A.pb(mk(x,y));
    }

    cin>>m;
    L=mk(0,(int)2e9), R=mk(0,0);
    while(m--)
    {
        cin>>x>>y;
        if(y<L.se) L=mk(x,y);
        if(x>R.fi) R=mk(x,y);
    }
//    cout<<L.fi<<" "<<L.se<<endl;
//    cout<<R.fi<<" "<<R.se<<endl;

    int res=0;
    for(auto x:A)
    {
        int now=0;
        if(x.fi>L.se) now=max(now,x.fi-L.se);
        if(x.se<R.fi) now=max(now,R.fi-x.se);
        res=max(res,now);
    }
    cout<<res<<endl;
}

 


C - Anton and Fairy Tale - [算术题]

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ll n,m;

int main()
{
    cin>>n>>m;
    if(n<=m) cout<<n<<endl;
    else
    {
        ll k=sqrt(2*(n-m));
        while(k*(k+1)/2<n-m) k++;
        cout<<m+k<<endl;
    }
}

 


D - Anton and School - 2 - [范德蒙德恒等式][快速幂+逆元]

 

posted @ 2019-04-11 21:51  Dilthey  阅读(265)  评论(0编辑  收藏  举报