Submission #946261

# Submission time Handle Problem Language Result Execution time Memory
946261 2024-03-14T13:09:40 Z Zena_Hossam Beautiful row (IZhO12_beauty) C++14
0 / 100
2319 ms 262144 KB
#include <bits/stdc++.h>
using namespace std;
#define fi ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
//#define ll double
#define ll long long
//#define ll1 int
#define F first
#define S second
#define sz size()
#define all(s) s.begin(),s.end()
#define all1(s) s.rbegin(),s.rend()
ll c=0,n;vector<vector<ll>>s;
map<ll,map<ll,ll>>m,vis;
ll solve(ll uu,ll k,ll o){
    ll u=uu;u=(u|(1<<k));
    if(vis[uu][k])return m[uu][k];vis[uu][k]=1;
    //cout<<k<<" ";
if(__builtin_popcount(u)==n){
   return m[uu][k]=1;

}ll x=0;
for(ll i=0;i<s[k].sz;i++){

    if((u&(1<<(s[k][i]))))continue;
    x+=solve(u,s[k][i],o+1);
}return m[uu][k]=x;
}
int main()
{
    //freopen("stdin.in","r",stdin);freopen("stdout.out","w",stdout);
    ll T=1;fi
    //cin>>T;ll oo=0;
    while(T--)
    {
       cin>>n;
       ll arr[n];s.resize(n+5);
       for(ll i=0;i<n;i++){
        cin>>arr[i];
       }ll m[n+5]={};ll d[n+5]={};
       for(ll i=0;i<n;i++){
            ll a=arr[i];ll p=0;
            while(a!=0){
                if(a%2==1)p++;
                a/=2;
            }
            m[i]=p;
            ll b=arr[i];ll pp=0;
            while(b!=0){
                if(b%3==1)pp++;
                b/=3;
            }
            d[i]=pp;
       }
       for(ll i=0;i<n;i++){
        for(ll j=i+1;j<n;j++){if(i==j)continue;
            if(m[i]==m[j]){s[i].push_back(j);//cout<<i<<" "<<j<<"k\n";
            s[j].push_back(i);}
            else if(d[i]==d[j]){s[i].push_back(j);//cout<<i<<" "<<j<<"k\n";
            s[j].push_back(i); }
        }
       }ll c=0;
       for(ll i=0;i<n;i++){
       c+=solve(0,i,0);//cout<<"\n";
       }cout<<c;
    }
}

Compilation message

beauty.cpp: In function 'long long int solve(long long int, long long int, long long int)':
beauty.cpp:16:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   16 |     if(vis[uu][k])return m[uu][k];vis[uu][k]=1;
      |     ^~
beauty.cpp:16:35: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   16 |     if(vis[uu][k])return m[uu][k];vis[uu][k]=1;
      |                                   ^~~
beauty.cpp:22:13: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 | for(ll i=0;i<s[k].sz;i++){
      |             ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 2 ms 860 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 4 ms 1116 KB Output is correct
9 Correct 2 ms 860 KB Output is correct
10 Correct 4 ms 1116 KB Output is correct
11 Correct 113 ms 16332 KB Output is correct
12 Correct 78 ms 12920 KB Output is correct
13 Correct 660 ms 72528 KB Output is correct
14 Runtime error 2319 ms 262144 KB Execution killed with signal 9
15 Halted 0 ms 0 KB -