Submission #1004101

# Submission time Handle Problem Language Result Execution time Memory
1004101 2024-06-21T05:21:32 Z De3b0o Flights (JOI22_flights) C++17
0 / 100
315 ms 540672 KB
#include "Ali.h"
#include<bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define in insert
#define pb push_back
#define ppb pop_back()
#define d3 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define cans cout << ans << "\n";
#define yes cout << "Yes" << "\n";
#define no cout << "No" << "\n";
#define pll pair<ll,ll>
#define lin cout << "\n";
#define sqr 340
#define mod 1000000007
#define mid ((l+r)/2)
#define lc (2*x)
#define rc (2*x+1)

using namespace std;

vector<ll> adj[10009];
ll n;
ll ds[10009][10009];

ll fp(ll x , ll y)
{
    if(y==0)
        return 1;
    ll z = fp(x,y/2);
    if(y%2)
        return z*z*x;
    else
        return z*z;
}

void dfs(ll x , ll p , ll d , ll o)
{
    ds[o][x]=d;
    for(auto it : adj[x])
    {
        if(it==p)
            continue;
        dfs(it,x,d+1,o);
    }
}

void Init(int N, std::vector<int> U, std::vector<int> V)
{
    n=N;
    vector<ll> v;
    for(int i = 0 ; n>i ; i++)
        v.pb(i);
    //random_shuffle(v.begin(),v.end());
    for(int i = 0 ; n>i ; i++)
        SetID(i,v[i]);
    for(int i = 0 ; N-1>i ; i++)
    {
        adj[v[U[i]]].pb(v[V[i]]);
        adj[v[V[i]]].pb(v[U[i]]);
    }
}

std::string SendA(std::string S)
{
    ll a3 = 0;
    ll b = 1;
    for(int i = 0 ; 4>i ; i++)
    {
        if(S[i]=='1')
            a3+=b;
        b*=2;
    }
    ll a1 = 0 , a2 = 0;
    b=1;
    for(int i = 4 ; 4+a3>i ; i++)
    {
        if(S[i]=='1')
            a1+=b;
        b*=2;
    }
    b=1;
    for(int i = 4+a3 ; 20>i ; i++)
    {
        if(S[i]=='1')
            a2+=b;
        b*=2;
    }
    ll w = fp(2,a3);
    set<ll> sum;
    ll po = 20-a3-4;
    for(ll i = 0 ; w>i ; i++)
    {
        ll su = a2;
        b=1;
        for(int j = 0 ; a3>j ; j++)
        {
            if(b&i)
                su+=b+fp(2,po);
            b*=2;
        }
        if(2*n>=su)
            sum.in(su);
    }
    string s = "";
    for(ll i = 0 ; n>i ; i++)
    {
        ll x = i , y = i+a1;
        if(y>=n)
            break;
        ll su = x+y;
        if(sum.find(su)==sum.end())
            continue;
        dfs(x,-1,0,x);
        b = 1;
        for(int i = 0 ; 15>i ; i++)
        {
            if((x+y)&b)
                s+='1';
            else
                s+='0';
            b*=2;
        }
        b=1;
        for(int i = 0 ; 14>i ; i++)
        {
            if(ds[x][y]&b)
                s+='1';
            else
                s+='0';
            b*=2;
        }
    }
    return s;
}
#include "Benjamin.h"
#include<bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define in insert
#define pb push_back
#define ppb pop_back()
#define d3 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define cans cout << ans << "\n";
#define yes cout << "Yes" << "\n";
#define no cout << "No" << "\n";
#define pll pair<ll,ll>
#define lin cout << "\n";
#define sqr 340
#define mod 1000000007
#define mid ((l+r)/2)
#define lc (2*x)
#define rc (2*x+1)

using namespace std;

ll y , x;

std::string SendB(int N, int X, int Y)
{
    x=X;
    y=Y;
    ll a1 = abs(x-y);
    ll a2 = x+y;
    ll a3 = 0;
    ll b = a1;
    while(b)
    {
        a3++;
        b/=2;
    }
    string s = "";
    b=1;
    for(int i = 0 ; 4>i ; i++)
    {
        if(b&a3)
            s+='1';
        else
            s+='0';
        b*=2;
    }
    b=1;
    for(int i = 0 ; a3>i ; i++)
    {
        if(b&a1)
            s+='1';
        else
            s+='0';
        b*=2;
    }
    b=1;
    for(int i = a3+4 ; 20>i ; i++)
    {
        if(b&a2)
            s+='1';
        else
            s+='0';
        b*=2;
    }
    return s;
}

int Answer(std::string T)
{
    ll ans=-1;
    for(int i = 0 ; T.size()>i ; i+=29)
    {
        ll b = 1;
        ll sum = 0;
        for(int j = i ; i+15>j ; j++)
        {
            if(T[j]=='1')
                sum+=b;
            b*=2;
        }
        ll ans1 = 0;
        b=1;
        for(int j = i+15 ; i+29>j ; j++)
        {
            if(T[j]=='1')
                ans1+=b;
            b*=2;
        }
        if(x+y==sum)
            ans=ans1;
    }
    return ans;
}

Compilation message

grader_ali.cpp:10:8: warning: '{anonymous}::_randmem' defined but not used [-Wunused-variable]
   10 |   char _randmem[12379];
      |        ^~~~~~~~

Benjamin.cpp: In function 'int Answer(std::string)':
Benjamin.cpp:72:29: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   72 |     for(int i = 0 ; T.size()>i ; i+=29)
      |                     ~~~~~~~~^~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 924 KB Output is correct
2 Correct 0 ms 920 KB Output is correct
3 Correct 1 ms 920 KB Output is correct
4 Correct 0 ms 920 KB Output is correct
5 Correct 0 ms 920 KB Output is correct
6 Incorrect 54 ms 34148 KB Incorrect
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Memory limit exceeded 315 ms 540672 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -