1209A - Paint the Numbers - CodeForces Solution


greedy implementation math *800

Please click on ads to support us..

Python Code:

input();r=[*map(int,input().split())];t=0
while r:
 mini=min(r)
 a=[]
 for i in r:
  if i%mini:a.append(i)
 t+=1;r=a
print(t)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int ttt;
    ttt=1;
    while(ttt--)
    {
        int n;
        cin>>n;
        int arr[n];
        for(int i=0;i<n;i++)
        cin>>arr[i];
        sort(arr,arr+n);
        vector<int>container;
        container.push_back(arr[0]);
        for(int i=1;i<n;i++)
        {   bool flag  =  false;
            for(auto it:container)
            {   
                if(gcd(arr[i],it)==it)
                {
                    flag =  true;
                    break;
                }
             
            

            }
               if(!flag)
                {
                    container.push_back(arr[i]);
                }
        }
        // for(auto it:container) cout<<it<<' ';
        cout<<container.size()<<endl;

        
    }
}


Comments

Submit
0 Comments
More Questions

25B - Phone numbers
1633C - Kill the Monster
1611A - Make Even
1030B - Vasya and Cornfield
1631A - Min Max Swap
1296B - Food Buying
133A - HQ9+
1650D - Twist the Permutation
1209A - Paint the Numbers
1234A - Equalize Prices Again
1613A - Long Comparison
1624B - Make AP
660B - Seating On Bus
405A - Gravity Flip
499B - Lecture
709A - Juicer
1358C - Celex Update
1466B - Last minute enhancements
450B - Jzzhu and Sequences
1582C - Grandma Capa Knits a Scarf
492A - Vanya and Cubes
217A - Ice Skating
270A - Fancy Fence
181A - Series of Crimes
1638A - Reverse
1654C - Alice and the Cake
369A - Valera and Plates
1626A - Equidistant Letters
977D - Divide by three multiply by two
1654B - Prefix Removals