227B - Effective Approach - CodeForces Solution


implementation *1100

Please click on ads to support us..

Python Code:

if __name__ == '__main__':
    n = int(input())
    arr = list(map(int, input().split()))
    dict_arr = {}
    for i, e in enumerate(arr):
        dict_arr[e] = i + 1

    ni = int(input())
    result1 = 0
    result2 = 0
    ni = list(map(int, input().split()))
    for x in ni:
        
        result1 += dict_arr[x]
        result2 += n - dict_arr[x] + 1
    print(result1, result2)

C++ Code:

/*
                  ___            _________                       ___              ____
  | |  / /       // \\          /          \     | |  / /       // \\         | ||    | |
  | | / /       //   \\        |    ____    |    | | / /       //   \\        | ||____| |
  | |/ /       //_____\\       |   /    \   |    | |/ /       //_____\\       | |_______|
  | |\ \      //_______\\      |   \____/   |    | |\ \      //_______\\      | | ____  |
  | | \ \    //         \\     |            |    | | \ \    //         \\     | ||    | |
  | |  \ \  //           \\    \ __________/     | |  \ \  //           \\    | ||____| |

*/
#include<iostream>
#include <numeric>
#include<string>
#include<iostream>
#include<cmath>
#include<vector>
#include<map>
#include<algorithm>
#include<stack>
#include<queue>
#include<ostream>
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
#define fo(i,n) for (int i = 0; i < n; i++)
typedef vector<int>  ve;
typedef vector<bool>  vb;
typedef vector<ve>  vee;
typedef long long ll;
typedef  map<int, int> m;
ll GCD(ll a, ll b) { return (a) ? GCD(b % a, a) : b; }
ll LCM(ll a, ll b) { return a * b / GCD(a, b); }
#define all(a) (a).begin(), (a).end()
int dx[] = { -1,-1,-1,1,1,1 };
int dy[] = { -1, 0, 1,-1,0,1 };
int di[] = { 1,2,3,4,5,6 };
//const string pi = "314159265358979323846264338327";
//void ragner()
//{
//    string n;
//    cin >> n;
//    int c = 0;
//    fo(i, n.size())
//    {
//        if (pi[i] == n[i])
//            c++;
//        else break;
//    }
//    cout << c;
//
//}
//void ragner()
//{
//    int n,s,r;
//    cin >> n>>s>>r;
//    int y = s - r;
//    ve a(n, 0);
//    a[n - 1] = y;
//    while (r>0)
//    {
//        fo(i, n - 1)
//        {
//            if (r == 0)
//                break;
//            else {
//                a[i]++;
//                r--;
//            }
//        }
//    }
//    fo(i, n)
//    {
//        cout << a[i] << " ";
//    }
//}
//void ragner()
//{
//    int n;
//    cin >> n;
//    map<int, int>ma;
//    vector<vector<int>> a(n,vector<int>(n-1));
//    int f;
//    fo(i, n)
//    {
//        fo(j, n - 1)
//        {
//            int x; cin >> x;
//            a[i][j] = x;
//            if (j == n - 2)
//            {
//                ma[x]++;
//                if (ma[x] > 1)
//                    f = x;
//            }
//        }
//    }
//    fo(i, n)
//    {
//        if (a[i][n - 2] != f)
//        {
//            fo(j, n - 1)
//            {
//                cout << a[i][j] << " ";
//            }
//            cout << f;
//            break;
//        }
//    }
//}
//void ragner()
//{
//    int n;
//    cin >> n;
//    ve ar(n);
//    ve v;
//    map<int,int> a;
//    fo(i, n)
//    {
//        cin >> ar[i];
//        if (a[ar[i]] == 0)
//            v.push_back(ar[i]);
//        a[ar[i]]++;
//    }
//    sort(all(v));
//    int c = 0;
//    fo(i, v.size())
//    {
//        while (a[v[i]] > 0)
//        {
//            c++;
//            a[v[i]]--;
//            int y = v[i];
//            while (a[++y] > 0)
//            {
//                a[y]--;
//            }
//
//        }
//    }
//    cout << c;
//}
//void ragner()
//{
//    int x;
//    cin >> x;
//    if (x % 2 != 0) { cout << -1; return; }
//    int a = x + (x / 2);
//    int b = x / 2;
//    if ((a ^ b) == x)
//    {
//        cout << a << " " << b;
//    }
//    else cout << -1;
//}
//int n;
//int ye(int i,ve a)
//{
//    int u = 0;
//    for (size_t j = i; j > 0 ; j--)
//    {
//        if (a[j] - a[j - 1] >= 0)
//            u++;
//        else break;
//    }
//    return u;
//}
//int sh(int i, ve a)
//{
//    int u = 0;
//    for (size_t j = i; j < n-1; j++)
//    {
//        if (a[j] - a[j + 1] >= 0)
//            u++;
//        else break;
//    }
//    return u;
//}
//void ragner()
//{
//    cin >> n;
//    ve a(n);
//    fo(i, n) cin >> a[i];
//    int c = 0;
//    if (n == 1)
//    {
//        cout << 1;
//        return ;
//    }
//    fo(i, n)
//    {
//        int y = 0;
//        if (i == 0)
//        {
//            for (size_t j = i; j < n-1; j++)
//            {
//                if (a[j] - a[j + 1] >= 0)
//                    y++;
//                else break;
//            }
//            y++;
//        }
//        else if (i == n - 1)
//        {
//            for (size_t j = i; j > 0; j--)
//            {
//                if (a[j] - a[j - 1] >= 0)
//                    y++;
//                else break;
//            }
//            y++;
//        }
//        else
//        {
//            int yemen = ye(i,a);
//            int shemal = sh(i,a);
//            y = yemen + shemal;
//            y++;
//        }
//        c = max(c, y);
//    }
//    cout << c;
//}
//void ragner()
//{
//    int n; int k;
//    cin >> n >> k;
//    ve a(n+1);
//    fo(i, n) cin >> a[i];
//    int l = k - 1;
//    int r = k + 1;
//    int c = 0;
//    if (a[k] == 1)
//        c++;
//    while (l > 0||r<=n)
//    {
//        if (l>0&&r<=n&&a[l] == a[r] && a[r] == 1)
//            c+=2;
//        if (l > 0 && r > n && a[l] == 1)
//            c++;
//        if (l <= 0 && r <= n && a[r] == 1)
//            c++;
//        l--;
//        r++;
//    }
//    cout << c;
//}
//void ragner()
//{
//    int n, m;
//    cin >> n >> m;
//    vector<pair<int, int>>a(m);
//    fo(i, m)
//    {
//        int x, y;
//        cin >> x>> y;
//        a[i].first = y;
//        a[i].second = x;
//    }
//    sort(all(a));
//    int c = 0;
//    for (int i = m-1; i >=0; i--)
//    {
//        if (n == 0) break;
//        while(a[i].second!=0&&n!=0)
//        {
//            c += a[i].first;
//            n--;
//            a[i].second--;
//        }
//    }
//    cout << c;
//}
//void ragner()
//{
//    int a, b;
//    cin >> a >> b;
//    int c1 = 0;
//    int c2 = 0;
//    int c3 = 0;
//    if (a == b)
//    {
//        cout << 0;
//        return;
//    }
//    while (1)
//    {
//        if (a % 2 == 0)
//        {
//            c1++;
//             a /= 2;
//        }
//        else if (a % 3 == 0)
//        {
//            c2++;
//            a /= 3;
//        }
//        else if (a % 5 == 0)
//        {
//            c3++;
//            a /= 5;
//        }
//        else break;
//    }
//    while (1)
//    {
//        if (b % 2 == 0)
//        {
//            c1--;
//            b /= 2;
//        }
//        else if (b % 3 == 0)
//        {
//            c2--;
//            b /= 3;
//        }
//        else if (b % 5 == 0)
//        {
//            c3--;
//            b /= 5;
//        }
//        else break;
//    }
//    if (a != b) { cout << -1; return; }
//    cout << abs(c1)+abs(c2)+abs(c3);
//}
//void ragner()
//{
//    int n; cin >> n;
//    ve a(n);
//    fo(i, n) cin >> a[i];
//    int dol = a[0];
//    int en = 0;
//    fo(i, n - 1)
//    {
//        if (a[i] - a[i + 1] >= 0)
//            en += a[i] - a[i + 1];
//        else if (en >= abs(a[i] - a[i + 1]))
//            en += a[i] - a[i + 1];
//        else
//        {
//            dol += abs(a[i] - a[i + 1]) - en;
//            en = 0;
//        }
//    }
//    cout << dol;
//}
//void ragner()
//{
//    string s; cin >> s;
//    if (s.size() == 1)
//    {
//        cout << 0;
//        return;
//    }
//    int sum = 0;
//    fo(i, s.size())
//        sum += (s[i] - '0');
//    string n = to_string(sum);
//    int c = 1;
//    while (n.size()!=1)
//    {
//        c++;
//        sum = 0;
//        fo(i, n.size())
//            sum += (n[i] - '0');
//        n = to_string(sum);
//    }
//    cout << c;
//}
//void dec(string &s, int n)
//{
//    int o;
//    if (n % 2 == 0)
//        o = n / 2 - 1;
//    else 
//    o= n / 2;
//    cout << s[o];
//    string h;
//    int k = 0;
//    fo(i, s.size())
//    {
//        if (i == o)
//            continue;
//        h+= s[i];
//    }
//    s = h;
//}
//void ragner()
//{
//    int n;
//    cin >> n;
//    string s;
//    string s2;
//    cin >> s;
//    if (n % 2 == 1)
//    {
//        fo(i, n)
//        {
//            if (i % 2 == 1)
//            {
//                s2 = s[i] + s2;
//            }
//            else s2+= s[i];
//        }
//    }
//    else
//    {
//            fo(i, n)
//            {
//                if (i % 2 == 0)
//                {
//                    s2 = s[i] + s2;
//                }
//                else s2 += s[i];
//            }
//    }
//    cout << s2;
//}
//string s = "ROYGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIVGBIV";
//void ragner()
//{
//    int n;
//    cin >> n;
//    fo(i, n)
//        cout <<s[i];
//}
void ragner()
{
    int n; cin >> n;
    vector<ll> a(n+1);
    fo(i, n)
    {
        ll x;
        cin >> x;
        a[x] = i;
    }
    ll m; cin >> m;
    ll v = 0;
    ll p = 0;
    fo(i, m)
    {
        ll x;
        cin >> x;
        v += a[x] + 1;
        p += abs(n - a[x]);
    }
    cout << v << " " << p;
}
int main()
{
    int t = 1; //cin >> t;
    while (t--)
    {
        ragner();
        cout << endl;
    }
    return 0;
}


Comments

Submit
0 Comments
More Questions

1396B - Stoned Game
16A - Flag
1056A - Determine Line
670B - Game of Robots
1418C - Mortal Kombat Tower
1382B - Sequential Nim
1272C - Yet Another Broken Keyboard
808A - Lucky Year
1245A - Good ol' Numbers Coloring
58B - Coins
1041C - Coffee Break
507A - Amr and Music
1041D - Glider
1486A - Shifting Stacks
1389B - Array Walk
71B - Progress Bar
701A - Cards
545A - Toy Cars
1538E - Funny Substrings
234A - Lefthanders and Righthanders
1611D - Weights Assignment For Tree Edges
197A - Plate Game
1474A - Puzzle From the Future
6B - President's Office
1405B - Array Cancellation
431C - k-Tree
101A - Homework
1642C - Great Sequence
1523B - Lord of the Values
1406C - Link Cut Centroids