답안 #1004108

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1004108 2024-06-21T05:24:39 Z De3b0o Flights (JOI22_flights) C++17
0 / 100
316 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)
      |                     ~~~~~~~~^~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 920 KB Output is correct
2 Correct 0 ms 920 KB Output is correct
3 Correct 0 ms 920 KB Output is correct
4 Correct 1 ms 920 KB Output is correct
5 Correct 1 ms 920 KB Output is correct
6 Correct 118 ms 90184 KB Output is correct
7 Correct 124 ms 89336 KB Output is correct
8 Correct 129 ms 91716 KB Output is correct
9 Correct 72 ms 71756 KB Output is correct
10 Correct 32 ms 55544 KB Output is correct
11 Correct 59 ms 81128 KB Output is correct
12 Failed 91 ms 140236 KB Unexpected end of file - int32 expected (Bruno)
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Memory limit exceeded 316 ms 540672 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -