230 - Borrowers (UVA)

这篇具有很好参考价值的文章主要介绍了230 - Borrowers (UVA)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目链接如下:

Online Judge

代码如下:文章来源地址https://www.toymoban.com/news/detail-733641.html

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <map>
// #define debug

struct book{
    std::string title;
    std::string author;
    bool isExisted = true;
    book(std::string _title, std::string _author): title(_title), author(_author){}
};
std::vector<book> vec, toReturn;
std::string str;
int loc;
std::map<std::string, int> mp;

bool cmp(const book &a, const book &b){
    return a.author != b.author ? a.author < b.author : a.title < b.title;
}

int main(){
    #ifdef debug
    freopen("0.txt", "r", stdin);
    freopen("1.txt", "w", stdout);
    #endif
    while (getline(std::cin, str) && str[0] != 'E'){
        int i;
        for (i = 1; i < str.size(); ++i){
            if (str[i] == '"'){
                break;
            }
        }
        vec.push_back(book(str.substr(0, i + 1), str.substr(i + 5)));
    }
    sort(vec.begin(), vec.end(), cmp);
    for (int i = 0; i < vec.size(); ++i){
        mp[vec[i].title] = i;
    }
    while (getline(std::cin, str) && str[0] != 'E'){
        if (str[0] == 'S'){
            sort(toReturn.begin(), toReturn.end(), cmp);
            for (int i = 0; i < toReturn.size(); ++i){
                loc = mp[toReturn[i].title];
                vec[loc].isExisted = true;
                int j;
                for (j = loc - 1; j >= 0; --j){
                    if (vec[j].isExisted){
                        break;
                    }
                }
                if (j < 0){
                    printf("Put %s first\n", toReturn[i].title.c_str());
                } else{
                    printf("Put %s after %s\n", toReturn[i].title.c_str(), vec[j].title.c_str());
                }
            }
            printf("END\n");
            toReturn.clear();
        } else{
            std::string temp = str.substr(7);
            if (str[0] == 'B'){
                vec[mp[temp]].isExisted = false;
            } else{
                toReturn.push_back(vec[mp[temp]]);
            }
        }
    }
    #ifdef debug
    fclose(stdin);
    fclose(stdout);
    #endif
    return 0;
}

到了这里,关于230 - Borrowers (UVA)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 232 - Crossword Answers (UVA)

    这道题因为我把puzzle打成了Puzzle,卡了我很久…………真的太无语了。 题目链接如下: Online Judge 我的代码如下:

    2024年02月09日
    浏览(27)
  • 439 - Knight Moves (UVA)

    题目链接如下: Online Judge UVA439 骑士的移动 - 锦依卫议事堂 - 洛谷博客 这里有好几个特别厉害的解法...先存着慢慢看。 我的代码如下:

    2024年02月01日
    浏览(29)
  • UVA378 Intersecting Lines 题解

    怎么这么多点斜式邪教啊。 在计算几何中,我们应该尽可能地避免使用浮点数的计算,尽可能地使用向量计算。 本篇题解默认读者具有向量基础。 为了方便讲解,我们将输入的四个点分别记作 A , B , C , D A,B,C,D A , B , C , D 。 考虑两条直线 A B , C D AB,CD A B , C D 何时平行。根据

    2024年04月09日
    浏览(57)
  • UVa11374 Airport Express(Dijkstra)

    给出经济路线以及商业路线,在给出起始点s,终止点e,在只能使用其中一个商业路线 的情况下输出最短路径 如果选择商业路线为从u到v,则需要从s-u,u-v,v-e点的路径最短。使用Dijkstra计算出从s点到其它各点,以及从e点到其它各点的最短路径,然后遍历商业路线u,v,选取从

    2024年02月10日
    浏览(31)
  • 10881 - Piotr‘s Ants (UVA)

    题目链接:Online Judge 根据刘汝佳的解法的思路,我的代码如下: 我起先的代码如下,样例答案是对的,但提交时显示超时:

    2024年02月10日
    浏览(31)
  • 【嵌入式AI】CanMVk230开发板学习笔记(一)

    嵌入式AI学习:CanMVk230开发板学习笔记 官方链接: k230快速入门 github固件下载地址: https://github.com/kendryte/k230_canmv/releases K230的相关软硬件资料,请参考 https://developer.canaan-creative.com/k230/dev/index.html https://gitee.com/kendryte/k230_docs https://space.bilibili.com/677429436 https://gitee.com/kendryte/k2

    2024年01月20日
    浏览(53)
  • FOXBORO FBM230 P0926GU 数字量控制模块

    FOXBORO FBM230 P0926GU 数字量控制模块是用于工业自动化和过程控制系统的模块之一,用于处理数字量信号,例如开关状态、传感器状态等。这些模块广泛应用于各种工业领域,包括但不限于以下应用领域: 工业自动化 :在工业自动化系统中,FBM230 P0926GU 数字量控制模块可用于监

    2024年02月07日
    浏览(36)
  • Pcb课程设计2(GD32E230核心板)

    芯片介绍: GD32E230系列MCU是北京兆易创新科技股份有限公司基于Cortex-M23内核的首个产品系列。 GD32E230系列MCU采用了业界领先的55nm低功耗工艺制程,提供了18个产品型号,6种封装类型,芯片面积从7x7mm至3x3mm GD32E230系列产品片上集成了多达5个16位通用定时器、1个16位基本定时器

    2024年02月03日
    浏览(32)
  • UVa247 Calling Circles(Floyd warshall算法)

    给定两个人相互打电话,如果a打给b,b打给c,c打给a,则说a,b,c在同一电话圈中。给出n个人的m次通话,输出所有的电话圈 用graph[u][v]=1表示u和v之间有打电话。在使用floyd算法计算所有的点对之间的值。graph[u][v]=1表示u,v之间有直接或者间接打电话。如果graph[u][v] = 1并且graph[v][u]

    2024年02月12日
    浏览(39)
  • 骰子涂色(Cube painting, UVa 253)rust解法

    输入两个骰子,判断二者是否等价。每个骰子用6个字母表示,如图4-7所示。 例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子。二者是等价的,因为图4-8(a)所示的骰子沿着竖直轴旋转90°之后就可以得到图4-8(b)所示的骰子。 样例: 解法:

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包