Codeforces Round #584 - Dasha Code Championship - Elimination Round (rated, open for everyone, Div. 1 + Div. 2) 
A
# include <bits/stdc++.h>
using namespace std;
const int MAXN=200;
int a[MAXN];
int f[MAXN];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    sort(a+1,a+n+1);
    int cnt=0;
    for(int i=1;i<=n;i++){
        if(f[i]==0){
            cnt++;
            for(int j=i;j<=n;j++){
                if(a[j]%a[i]==0&&f[j]==0){
                    f[j]=a[i];
                }
            }
        }
    }
    printf("%d\n",cnt);
    return 0;
 } 
B
# include <bits/stdc++.h>
using namespace std;
const int MAXN=200;
int a[MAXN],b[MAXN],init[MAXN];
const int MAXX=1e3+100;
int sum[MAXX];
int main()
{
    int n;
    scanf("%d",&n);
    getchar(); 
    for(int i=1;i<=n;i++){
        char cc;
        scanf("%c",&cc);
        init[i]=cc-'0';
    }
    for(int i=1;i<=n;i++){
        scanf("%d%d",&a[i],&b[i]);
        int now=init[i];
        for(int j=0;j<=1000;j++){
            if(j<b[i]){
                sum[j]+=now;
            }else{
                if((j-b[i])%a[i]==0) now=!now;
                sum[j]+=now;
            } 
            
C
# include <bits/stdc++.h>
using namespace std;
const int MAXN=2e5+100;
char s[MAXN];
set<int> a[10];
int f[MAXN];
void init()
{
    for(int i=0;i<=9;i++) a[i].clear(); 
    memset(f,0,sizeof(f));
    return ;
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--){
        init();
        int n;
        int flag=1;
        scanf("%d",&n);
        scanf("%s",s+1);
        for(int i=1;i<=n;i++){
            int nn=s[i]-'0';
            a[nn].insert(i);
        }
        set<int>::iterator iter;
        int pre=0;
        int maxy=0;
        int fflag=0;
        for(int i=0;i<=9;i++){
            for(iter=a[i].begin();iter!=a[i].end();iter++){
                int now=*iter;
                if(pre==n) break;
                if(now>pre){
                    f[now]=1;