提出 #46825236


ソースコード 拡げる

#include<bits/stdc++.h>
#pragma GCC optimzie "Ofast"
#define prob "E"
#define ll long long
#define fi first
#define se second
using namespace std;
const int maxn = 1e3;
const int MOD = 1e9 + 7;
const int dx[] = {-1,0,1,0};
const int dy[] = {0,1,0,-1};
typedef pair<int,int> pi;
void __print(int x) {cerr << x;}
void __print(long x) {cerr << x;}
void __print(long long x) {cerr << x;}
void __print(unsigned x) {cerr << x;}
void __print(unsigned long x) {cerr << x;}
void __print(unsigned long long x) {cerr << x;}
void __print(float x) {cerr << x;}
void __print(double x) {cerr << x;}
void __print(long double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}

template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}
#ifndef ONLINE_JUDGE
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#define debug(x...)
#endif
int n,A,B,C;
int d[maxn+5][maxn+5];
long long dp[maxn+5][2];
struct ii{
    int id;
    long long w;
    int type;
};
struct cmp{
    bool operator () (ii A, ii B){
        return A.w > B.w;
    }
};
priority_queue<ii,vector<ii>,cmp> Heap;
void solve(){
    cin >> n >> A >> B >> C;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            cin >> d[i][j];
        }
    }
    for(int i=1;i<=n;i++) dp[i][0] = dp[i][1] = 1e18;
    dp[1][0] = dp[1][1] = 0;
    Heap.push({1,dp[1][0],0});
    Heap.push({1,dp[1][1],1});
    while(Heap.size()){
        ii u = Heap.top();
        Heap.pop();
        if(dp[u.id][u.type] < u.w) continue;
        for(int i=1;i<=n;i++){
            if(i == u.id) continue;
            if(u.type == 1){
                ll tmp = dp[u.id][1] + 1ll * d[u.id][i] * B + 1ll * C;
                if(tmp < dp[i][1]){
                    dp[i][1] = tmp;
                    Heap.push({i,dp[i][1],1});
                }
            }
            else{
                ll tmp = dp[u.id][0] + 1ll * d[u.id][i] * A;
                if(tmp < dp[i][0]){
                    dp[i][0] = tmp;
                    Heap.push({i,dp[i][0],0});
                }
                ll tmp1 = dp[u.id][0] + 1ll * d[u.id][i] * B + 1ll * C;
                if(tmp1 < dp[i][1]){
                    dp[i][1] = tmp1;
                    Heap.push({i,dp[i][1],1});
                }
            }
        }
    }
    cout << min(dp[n][0],dp[n][1]);
}
int main(){
    if(fopen(prob".inp","r")){
        freopen(prob".inp","r",stdin);
        freopen(prob".out","w",stdout);
    }
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int tc = 1;
//    cin >> tc;
    while(tc--) solve();
}


提出情報

提出日時
問題 E - Our clients, please wait a moment
ユーザ HonaNguyen
言語 C++ 20 (gcc 12.2)
得点 450
コード長 3215 Byte
結果 AC
実行時間 76 ms
メモリ 10132 KiB

コンパイルエラー

Main.cpp:2: warning: ignoring ‘#pragma GCC optimzie’ [-Wunknown-pragmas]
    2 | #pragma GCC optimzie "Ofast"
      | 
Main.cpp: In function ‘int main()’:
Main.cpp:95:16: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   95 |         freopen(prob".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
Main.cpp:96:16: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   96 |         freopen(prob".out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 450 / 450
結果
AC × 3
AC × 39
セット名 テストケース
Sample sample00.txt, sample01.txt, sample02.txt
All sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt, testcase35.txt
ケース名 結果 実行時間 メモリ
sample00.txt AC 1 ms 3500 KiB
sample01.txt AC 1 ms 3596 KiB
sample02.txt AC 1 ms 3660 KiB
testcase00.txt AC 48 ms 7540 KiB
testcase01.txt AC 40 ms 7180 KiB
testcase02.txt AC 39 ms 7212 KiB
testcase03.txt AC 47 ms 7684 KiB
testcase04.txt AC 44 ms 7532 KiB
testcase05.txt AC 42 ms 7228 KiB
testcase06.txt AC 48 ms 7492 KiB
testcase07.txt AC 47 ms 7556 KiB
testcase08.txt AC 49 ms 7712 KiB
testcase09.txt AC 50 ms 7712 KiB
testcase10.txt AC 52 ms 7632 KiB
testcase11.txt AC 47 ms 7592 KiB
testcase12.txt AC 45 ms 7364 KiB
testcase13.txt AC 50 ms 7564 KiB
testcase14.txt AC 52 ms 7636 KiB
testcase15.txt AC 47 ms 7552 KiB
testcase16.txt AC 46 ms 7436 KiB
testcase17.txt AC 44 ms 7432 KiB
testcase18.txt AC 52 ms 7688 KiB
testcase19.txt AC 46 ms 7492 KiB
testcase20.txt AC 49 ms 7528 KiB
testcase21.txt AC 41 ms 7264 KiB
testcase22.txt AC 53 ms 7660 KiB
testcase23.txt AC 48 ms 7696 KiB
testcase24.txt AC 49 ms 7560 KiB
testcase25.txt AC 47 ms 7444 KiB
testcase26.txt AC 49 ms 7504 KiB
testcase27.txt AC 41 ms 7388 KiB
testcase28.txt AC 41 ms 7224 KiB
testcase29.txt AC 50 ms 7612 KiB
testcase30.txt AC 53 ms 7644 KiB
testcase31.txt AC 46 ms 7652 KiB
testcase32.txt AC 69 ms 8676 KiB
testcase33.txt AC 76 ms 10132 KiB
testcase34.txt AC 60 ms 8696 KiB
testcase35.txt AC 46 ms 7724 KiB