제출 #1291475

#제출 시각아이디문제언어결과실행 시간메모리
1291475longlong5a6Jakarta Skyscrapers (APIO15_skyscraper)C++20
36 / 100
292 ms327680 KiB
//longlong5a6
#include <bits/stdc++.h>
#define pii pair<int,int>
#define F first
#define S second
#define bit(i, x)((x >> i) & 1)
#define sobit(i)  __builtin_popcount((int)(i))
#define sobitll(i) __builtin_popcountll((int)(i))
#define pb push_back
#define all(x) x.begin(),x.end()
#define vi vector<int>
#define For(i,x,n) for(int (i)=(int)(x);(i)<=(int)(n);(i)++)
#define round(m,n) setprecision((int)m) << fixed << double(n)
#define down "\n"
#define TASK "test"
#define maxn 30001
#define int long long
using namespace std;
vector<pii> line[maxn];
int n,m;
int p[maxn];
int b[maxn];
int d[maxn];
void DIJ()
{
    memset(d,0x3f,sizeof(d));
    priority_queue<pii> q;
    q.push({0,b[1]});
    d[b[1]]=0;
    while(!q.empty())
    {
        pii g=q.top();
        q.pop();
        int u=g.S;
        int l=-g.F;
        if (l>d[u]) continue;
        for(auto i:line[u])
        {
            int v=i.F;
            int w=i.S;
            if (d[v]>l+w)
            {
                d[v]=l+w;
                q.push({-d[v],v});
            }
        }
    }

}
signed main()
{
    ios_base::sync_with_stdio(0);
        cin.tie(0);
        cout.tie(0);
    if (fopen("in.txt","r"))
        {
            freopen("in.txt","r",stdin);

        }
    if (fopen(TASK".INP","r"))
            {
                freopen(TASK".INP","r",stdin);
                freopen(TASK".OUT","w",stdout);
            }
    cin>>n>>m;
    For(i,1,m)
    {
        cin>>b[i]>>p[i];
        b[i]++;
        for(int j=b[i]+p[i],cnt=1;j<=n;j+=p[i],cnt++)
        line[b[i]].pb({j,cnt});
        for(int j=b[i]-p[i],cnt=1;j>=1;j-=p[i],cnt++)
        line[b[i]].pb({j,cnt});
    }
    DIJ();
    if (d[b[2]]<1e18) 
    cout<<d[b[2]];
    else cout<<-1;
}

컴파일 시 표준 에러 (stderr) 메시지

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:57:20: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   57 |             freopen("in.txt","r",stdin);
      |             ~~~~~~~^~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:62:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   62 |                 freopen(TASK".INP","r",stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
skyscraper.cpp:63:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |                 freopen(TASK".OUT","w",stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...