首页 > 代码库 > Codeforces Round #424 (Div. 2) A-C

Codeforces Round #424 (Div. 2) A-C

A. Unimodal Array

水题

#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <iomanip>#include <math.h>#include <map>using namespace std;#define FIN     freopen("input.txt","r",stdin);#define FOUT    freopen("output.txt","w",stdout);#define INFLL   0x3f3f3f3f3f3f3f#define lson    l,m,rt<<1#define rson    m+1,r,rt<<1|1typedef long long LL;typedef pair<double, double> PII;const int maxn = 100 + 5;int a[maxn];int b[maxn];int main() {    //FIN    int n;    cin >> n;    for(int i = 1; i <= n; i++) cin >> a[i];    for(int i = 1; i <= n -1; i++) {        if(a[i] - a[i + 1] > 0) b[i] = 1;        else if(a[i] - a[i + 1] == 0) b[i] = 0;        else if(a[i] - a[i + 1] < 0) b[i] = -1;    }    for(int i = 1; i <= n - 2; i++) {        //cout << b[i]<<"  ";        if(b[i + 1] < b[i]) {            cout <<"NO"<<endl;            return 0;        }    }    cout <<"YES"<<endl;    return 0;}

  

B. Keyboard Layouts

比第一题还水...

#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <iomanip>#include <math.h>#include <map>using namespace std;#define FIN     freopen("input.txt","r",stdin);#define FOUT    freopen("output.txt","w",stdout);#define INFLL   0x3f3f3f3f3f3f3f#define lson    l,m,rt<<1#define rson    m+1,r,rt<<1|1typedef long long LL;typedef pair<double, double> PII;char s1[30];char s2[30];char s3[1005];int main() {    //FIN    cin >> s1;    cin >> s2;    cin >> s3;    int len = strlen(s3);    for(int i = 0; i < len; i++) {        int flag = 0;        if(s3[i] >= ‘0‘ && s3[i] <= ‘9‘) {            cout << s3[i];            continue;        }        if(s3[i] >= ‘A‘ && s3[i] <= ‘Z‘) {            flag = 1;            s3[i] += 32;        }        for(int j = 0; j < 26; j++) {            if(s1[j] == s3[i]) {                if(flag) printf("%c", s2[j] - 32);                else cout << s2[j] ;                break;            }        }    }    return 0;}

  

C. Jury Marks

这题看了题解才会做 学会了一个新操作 unique

#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <queue>#include <vector>#include <iomanip>#include <math.h>#include <map>using namespace std;#define FIN     freopen("input.txt","r",stdin);#define FOUT    freopen("output.txt","w",stdout);#define INFLL   0x3f3f3f3f3f3f3f#define lson    l,m,rt<<1#define rson    m+1,r,rt<<1|1typedef long long LL;typedef pair<double, double> PII;const int maxn = 2000 + 5;int a[maxn];int b[maxn];int sum[maxn];vector<int> vec;map<int, int> mp;int main() {    //FIN    int n, k;    scanf("%d%d", &k, &n);    int x;    for(int i = 1; i <= k; i++) {        scanf("%d", &a[i]);        sum[i] += sum[i - 1] + a[i];    }    sort(sum + 1, sum + 1 + k);    int len = unique(sum + 1, sum + 1 + k) - (sum + 1);    for(int i = 1; i <= n; i++) {        scanf("%d", &b[i]);        for(int j = 1; j <= len; j++) {            int tmp = b[i] - sum[j];            vec.push_back(tmp);        }    }    sort(vec.begin(), vec.end());    for(int i = 0; i < vec.size(); i++) {        mp[vec[i]]++;    }    int ans = 0;    for(int i = 0; i < vec.size(); i++) {        if(mp[vec[i]] >= n) {            ans++;            mp[vec[i]] = 0;        }    }    printf("%d\n", ans);    return 0;}

  

Codeforces Round #424 (Div. 2) A-C