Thu, 07 Feb 2019 14:29:33 GMT
parent
61febfe45c
commit
5f59690215
@ -1,29 +1,30 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
map<string, map<string, int>> M;
|
||||
int n, m, x;
|
||||
cin >> n;
|
||||
string s1, s2;
|
||||
while (n--)
|
||||
{
|
||||
M.clear();
|
||||
cin >> m;
|
||||
while (m--)
|
||||
{
|
||||
cin >> s1 >> s2 >> x;
|
||||
M[s2][s1] += x;
|
||||
}
|
||||
for (auto &x : M)
|
||||
{
|
||||
cout << x.first << endl;
|
||||
for (auto &y : x.second)
|
||||
cout << " |----" << y.first << '(' << y.second << ')' << endl;
|
||||
}
|
||||
if (n)
|
||||
cout << endl;
|
||||
}
|
||||
return 0;
|
||||
map<string, map<string, int>> M;
|
||||
int n, m, x;
|
||||
cin >> n;
|
||||
string s1, s2;
|
||||
while (n--)
|
||||
{
|
||||
M.clear();
|
||||
cin >> m;
|
||||
while (m--)
|
||||
{
|
||||
cin >> s1 >> s2 >> x;
|
||||
M[s2][s1] += x;
|
||||
}
|
||||
for (auto &x : M)
|
||||
{
|
||||
cout << x.first << endl;
|
||||
for (auto &y : x.second)
|
||||
cout << " |----" << y.first << '(' << y.second << ')' << endl;
|
||||
}
|
||||
if (n)
|
||||
cout << endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -1,46 +1,34 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 2e5 + 50;
|
||||
#define f first
|
||||
#define s second
|
||||
multimap<int, int> comps;
|
||||
pair<int, int> sock[N];
|
||||
//#define nxt(x) (((~(decltype(x))0) << 1 & x) << 1)
|
||||
//#define nxt(x) ((x | 1) << 1)
|
||||
#define nxt(x) ((x + 1) >> 1)
|
||||
int a[N], b[N], c, u;
|
||||
const int N = 2e6 + 10;
|
||||
pair<int, int> a[N];
|
||||
int c[N];
|
||||
int main()
|
||||
{
|
||||
int n, m;
|
||||
scanf("%d%d", &n, &m);
|
||||
for (int i = 1, x; i <= n; i++)
|
||||
scanf("%d", &x), comps.insert(make_pair(x, i));
|
||||
for (int i = 1; i <= m; i++)
|
||||
scanf("%d", &sock[i].f), sock[i].s = i;
|
||||
sort(sock + 1, sock + m + 1);
|
||||
for (int i = 1; i <= m && comps.size(); i++)
|
||||
ios::sync_with_stdio(false);
|
||||
int n, k;
|
||||
cin >> n >> k;
|
||||
for (int i = 0, l, r; i < n; i++)
|
||||
{
|
||||
int x = sock[i].f;
|
||||
int y = comps.begin()->first;
|
||||
for (int cnt = 0; x >= y; x = nxt(x), cnt++)
|
||||
{
|
||||
auto ite = comps.find(x);
|
||||
if (ite != comps.end())
|
||||
{
|
||||
a[sock[i].s] = cnt;
|
||||
b[ite->second] = sock[i].s;
|
||||
c++, u += cnt;
|
||||
comps.erase(ite);
|
||||
break;
|
||||
}
|
||||
}
|
||||
cin >> l >> r;
|
||||
a[i << 1] = make_pair(l, -1);
|
||||
a[i << 1 | 1] = make_pair(r, 1);
|
||||
}
|
||||
printf("%d %d\n", c, u);
|
||||
for (int i = 1; i <= m; i++)
|
||||
printf("%d ", a[i]);
|
||||
putchar('\n');
|
||||
for (int i = 1; i <= n; i++)
|
||||
printf("%d ", b[i]);
|
||||
n <<= 1;
|
||||
sort(a, a + n);
|
||||
for (int i = 1; i <= n; i++) c[i] = -a[i - 1].second;
|
||||
for (int i = 1; i <= n; i++) c[i] += c[i - 1];
|
||||
for (int i = 0; i <= n; i++) c[i] -= k;
|
||||
vector<pair<int, int>> ans;
|
||||
for (int i = 1, st = -1; i <= n; i++)
|
||||
{
|
||||
if (c[i - 1] < 0 && c[i] >= 0) st = i;
|
||||
if (c[i] < 0 && c[i - 1] >= 0) ans.push_back(make_pair(st - 1, i - 1));
|
||||
}
|
||||
cout << ans.size() << endl;
|
||||
for (const auto &x : ans)
|
||||
cout << a[x.first].first << ' ' << a[x.second].first << endl;
|
||||
return 0;
|
||||
}
|
||||
@ -1,26 +1,30 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
add_compile_options("/Zc:__cplusplus")
|
||||
include_directories("D:\\PortableApps\\MSYS2\\mingw64\\include\\c++\\8.2.1\\x86_64-w64-mingw32")
|
||||
add_executable("A" "A.cpp")
|
||||
add_executable("B" "B.cpp")
|
||||
add_executable("C" "C.cpp")
|
||||
add_executable("D" "D.cpp")
|
||||
add_executable("E" "E.cpp")
|
||||
add_executable("F" "F.cpp")
|
||||
add_executable("G" "G.cpp")
|
||||
add_executable("H" "H.cpp")
|
||||
add_executable("I" "I.cpp")
|
||||
add_executable("J" "J.cpp")
|
||||
add_executable("K" "K.cpp")
|
||||
add_executable("L" "L.cpp")
|
||||
add_executable("M" "M.cpp")
|
||||
add_executable("N" "N.cpp")
|
||||
add_executable("O" "O.cpp")
|
||||
add_executable("P" "P.cpp")
|
||||
add_executable("Q" "Q.cpp")
|
||||
add_executable("R" "R.cpp")
|
||||
add_executable("S" "S.cpp")
|
||||
add_executable("T" "T.cpp")
|
||||
add_executable("U" "U.cpp")
|
||||
add_executable("V" "V.cpp")
|
||||
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
if(MSVC)
|
||||
add_compile_options("/Zc:__cplusplus")
|
||||
endif()
|
||||
include_directories("C:\\Programs\\GCC\\x86_64-8.1.0-release-posix-seh-rt_v6-rev0\\lib\\gcc\\x86_64-w64-mingw32\\8.1.0\\include\\c++\\x86_64-w64-mingw32")
|
||||
add_executable(A A.cpp)
|
||||
add_executable(B B.cpp)
|
||||
add_executable(C C.cpp)
|
||||
add_executable(D D.cpp)
|
||||
add_executable(E E.cpp)
|
||||
add_executable(F F.cpp)
|
||||
add_executable(G G.cpp)
|
||||
add_executable(H H.cpp)
|
||||
add_executable(I I.cpp)
|
||||
add_executable(J J.cpp)
|
||||
add_executable(K K.cpp)
|
||||
add_executable(L L.cpp)
|
||||
add_executable(M M.cpp)
|
||||
add_executable(N N.cpp)
|
||||
add_executable(O O.cpp)
|
||||
add_executable(P P.cpp)
|
||||
add_executable(Q Q.cpp)
|
||||
add_executable(R R.cpp)
|
||||
add_executable(S S.cpp)
|
||||
add_executable(T T.cpp)
|
||||
add_executable(U U.cpp)
|
||||
add_executable(V V.cpp)
|
||||
add_executable(W W.cpp)
|
||||
@ -1,46 +1,47 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 10010, M = 100010;
|
||||
int adj[N], nxt[M << 1], to[M << 1], ecnt, col[N];
|
||||
inline void addEdge(int f, int t)
|
||||
{
|
||||
ecnt++;
|
||||
nxt[ecnt] = adj[f];
|
||||
adj[f] = ecnt;
|
||||
to[ecnt] = t;
|
||||
}
|
||||
void dfs(int x)
|
||||
{
|
||||
for (int e = adj[x], t; e; e = nxt[e])
|
||||
if (t = to[e], !col[to[e]])
|
||||
{
|
||||
col[t] = 3 - col[x];
|
||||
dfs(t);
|
||||
}
|
||||
}
|
||||
const int N = 2e5 + 50;
|
||||
#define f first
|
||||
#define s second
|
||||
multimap<int, int> comps;
|
||||
pair<int, int> sock[N];
|
||||
//#define nxt(x) (((~(decltype(x))0) << 1 & x) << 1)
|
||||
//#define nxt(x) ((x | 1) << 1)
|
||||
#define nxt(x) ((x + 1) >> 1)
|
||||
int a[N], b[N], c, u;
|
||||
int main()
|
||||
{
|
||||
int T;
|
||||
scanf("%d", &T);
|
||||
while (T--)
|
||||
{
|
||||
memset(adj, 0, sizeof(adj)), ecnt = 0;
|
||||
memset(col, 0, sizeof(col));
|
||||
int n, m, u, v;
|
||||
scanf("%d%d", &n, &m);
|
||||
for (int i = 0; i < m; i++)
|
||||
scanf("%d%d", &u, &v), addEdge(u, v), addEdge(v, u);
|
||||
if (m == 0) u = 1;
|
||||
col[u] = 1;
|
||||
dfs(u);
|
||||
int cnt[] = {0, 0, 0};
|
||||
for (int i = 1; i <= n; i++)
|
||||
cnt[col[i]]++;
|
||||
int ans = 0;
|
||||
for (int i = 0; i <= cnt[0]; i++)
|
||||
ans = max(ans, (cnt[1] + i) * (cnt[2] + cnt[0] - i));
|
||||
printf("%d\n", ans - m);
|
||||
}
|
||||
return 0;
|
||||
int n, m;
|
||||
scanf("%d%d", &n, &m);
|
||||
for (int i = 1, x; i <= n; i++)
|
||||
scanf("%d", &x), comps.insert(make_pair(x, i));
|
||||
for (int i = 1; i <= m; i++)
|
||||
scanf("%d", &sock[i].f), sock[i].s = i;
|
||||
sort(sock + 1, sock + m + 1);
|
||||
for (int i = 1; i <= m && comps.size(); i++)
|
||||
{
|
||||
int x = sock[i].f;
|
||||
int y = comps.begin()->first;
|
||||
for (int cnt = 0; x >= y; x = nxt(x), cnt++)
|
||||
{
|
||||
auto ite = comps.find(x);
|
||||
if (ite != comps.end())
|
||||
{
|
||||
a[sock[i].s] = cnt;
|
||||
b[ite->second] = sock[i].s;
|
||||
c++, u += cnt;
|
||||
comps.erase(ite);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
printf("%d %d\n", c, u);
|
||||
for (int i = 1; i <= m; i++)
|
||||
printf("%d ", a[i]);
|
||||
putchar('\n');
|
||||
for (int i = 1; i <= n; i++)
|
||||
printf("%d ", b[i]);
|
||||
return 0;
|
||||
}
|
||||
@ -1,32 +1,47 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 3e5 + 50;
|
||||
int a[N];
|
||||
const int N = 10010, M = 100010;
|
||||
int adj[N], nxt[M << 1], to[M << 1], ecnt, col[N];
|
||||
inline void addEdge(int f, int t)
|
||||
{
|
||||
ecnt++;
|
||||
nxt[ecnt] = adj[f];
|
||||
adj[f] = ecnt;
|
||||
to[ecnt] = t;
|
||||
}
|
||||
void dfs(int x)
|
||||
{
|
||||
for (int e = adj[x], t; e; e = nxt[e])
|
||||
if (t = to[e], !col[to[e]])
|
||||
{
|
||||
col[t] = 3 - col[x];
|
||||
dfs(t);
|
||||
}
|
||||
}
|
||||
int main()
|
||||
{
|
||||
int n;
|
||||
scanf("%d", &n);
|
||||
for (int i = 1; i <= n; i++)
|
||||
scanf("%d", a + i);
|
||||
vector<pair<int, int>> ans;
|
||||
set<int> s;
|
||||
int last = 0;
|
||||
for (int i = 1; i <= n; i++)
|
||||
if (s.empty())
|
||||
s.insert(a[last = i]);
|
||||
else if (s.count(a[i]))
|
||||
ans.push_back(make_pair(last, i)), s.clear();
|
||||
else
|
||||
s.insert(a[i]);
|
||||
if (ans.empty())
|
||||
puts("-1");
|
||||
else
|
||||
int T;
|
||||
scanf("%d", &T);
|
||||
while (T--)
|
||||
{
|
||||
ans.rbegin()->second = n;
|
||||
printf("%d\n", ans.size());
|
||||
for (auto &x : ans)
|
||||
printf("%d %d\n", x.first, x.second);
|
||||
memset(adj, 0, sizeof(adj)), ecnt = 0;
|
||||
memset(col, 0, sizeof(col));
|
||||
int n, m, u, v;
|
||||
scanf("%d%d", &n, &m);
|
||||
for (int i = 0; i < m; i++)
|
||||
scanf("%d%d", &u, &v), addEdge(u, v), addEdge(v, u);
|
||||
if (m == 0) u = 1;
|
||||
col[u] = 1;
|
||||
dfs(u);
|
||||
int cnt[] = {0, 0, 0};
|
||||
for (int i = 1; i <= n; i++)
|
||||
cnt[col[i]]++;
|
||||
int ans = 0;
|
||||
for (int i = 0; i <= cnt[0]; i++)
|
||||
ans = max(ans, (cnt[1] + i) * (cnt[2] + cnt[0] - i));
|
||||
printf("%d\n", ans - m);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -1,22 +1,33 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 3e5 + 50;
|
||||
int a[N];
|
||||
int main()
|
||||
{
|
||||
multiset<int> s;
|
||||
int n, x;
|
||||
char buf[20];
|
||||
for (; ~scanf("%d", &n); putchar('\n'), s.clear())
|
||||
for (int i = 0; i < n; i++)
|
||||
if (scanf("%s%d", buf, &x), buf[1] == 'u')
|
||||
s.insert(x);
|
||||
else
|
||||
{
|
||||
auto ite = s.upper_bound(x);
|
||||
if (ite != s.begin())
|
||||
printf("%d\n", *--ite), s.erase(ite);
|
||||
else
|
||||
puts("No Element!");
|
||||
}
|
||||
int n;
|
||||
scanf("%d", &n);
|
||||
for (int i = 1; i <= n; i++)
|
||||
scanf("%d", a + i);
|
||||
vector<pair<int, int>> ans;
|
||||
set<int> s;
|
||||
int last = 0;
|
||||
for (int i = 1; i <= n; i++)
|
||||
if (s.empty())
|
||||
s.insert(a[last = i]);
|
||||
else if (s.count(a[i]))
|
||||
ans.push_back(make_pair(last, i)), s.clear();
|
||||
else
|
||||
s.insert(a[i]);
|
||||
if (ans.empty())
|
||||
puts("-1");
|
||||
else
|
||||
{
|
||||
ans.rbegin()->second = n;
|
||||
printf("%d\n", ans.size());
|
||||
for (auto &x : ans)
|
||||
printf("%d %d\n", x.first, x.second);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -1,33 +1,23 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
const int N = 1 << 11;
|
||||
bitset<N> a[2][N];
|
||||
char buf[N];
|
||||
int main()
|
||||
{
|
||||
int T, n;
|
||||
scanf("%d", &T);
|
||||
while (T--)
|
||||
{
|
||||
memset(a, 0, sizeof(a));
|
||||
scanf("%d", &n);
|
||||
multiset<int> s;
|
||||
int n, x;
|
||||
char buf[20];
|
||||
for (; ~scanf("%d", &n); putchar('\n'), s.clear())
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
scanf("%s", buf);
|
||||
for (int j = 0; j < n; j++)
|
||||
if (scanf("%s%d", buf, &x), buf[1] == 'u')
|
||||
s.insert(x);
|
||||
else
|
||||
{
|
||||
if (buf[j] == 'P') a[0][i].set(j);
|
||||
if (buf[j] == 'Q') a[1][i].set(j);
|
||||
auto ite = s.upper_bound(x);
|
||||
if (ite != s.begin())
|
||||
printf("%d\n", *--ite), s.erase(ite);
|
||||
else
|
||||
puts("No Element!");
|
||||
}
|
||||
}
|
||||
bool flag = true;
|
||||
for (int k = 0; k < 2 && flag; k++)
|
||||
for (int i = 0; i < n && flag; i++)
|
||||
for (int j = 0; j < n && flag; j++)
|
||||
if (a[k][i][j] && (a[k][i] | a[k][j]) != a[k][i])
|
||||
flag = false;
|
||||
puts(flag ? "T" : "N");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in new issue