Submission #552891

#TimeUsernameProblemLanguageResultExecution timeMemory
552891M_WSkyscraper (JOI16_skyscraper)C++14
5 / 100
2088 ms304 KiB
#include <bits/stdc++.h> using namespace std; bool vis[102]; set<int> s; int a[102]; int N, L, ans = 0; void sol(int idx, int sm, int old){ if(idx > N && sm <= L){ ans++; return; } if(idx > 1){ int tmp = sm; auto it1 = s.begin(); auto it2 = s.end(); it2--; tmp += min(abs(a[old] - *it1), abs(a[old] - *it2)); if(s.size() > 1) tmp += abs(*it2 - *it1); if(tmp > L) return; } for(int i = 1; i <= N; i++){ if(vis[i]) continue; vis[i] = true; s.erase(a[i]); sol(idx + 1, sm + abs((old == -1 ? a[i] : a[old]) - a[i]), i); s.insert(a[i]); vis[i] = false; } } int main(){ scanf("%d %d", &N, &L); for(int i = 1; i <= N; i++){ scanf("%d", &a[i]); s.insert(a[i]); } sort(a + 1, a + N + 1); sol(1, 0, -1); printf("%d", ans); }

Compilation message (stderr)

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:34:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   34 |  scanf("%d %d", &N, &L);
      |  ~~~~~^~~~~~~~~~~~~~~~~
skyscraper.cpp:36:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |   scanf("%d", &a[i]);
      |   ~~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...