2
已解决
薛乘志
初级启示者
初级启示者
#include <bits/stdc++.h>
namespace cpp {
template <typename A> void __input(A &arg) {
std::cin >> arg;
}
template <typename A, typename... B> void __input(A &arg, B &...args) {
std::cin >> arg;
__input(args...);
}
template <typename A> void __print(A arg) {
std::cout << arg;
}
template <typename A, typename... B> void __print(A arg, B... args) {
std::cout << arg;
__print(args...);
}
template <typename T> std::vector<T> __range(T to) {
std::vector<T> ret;
for (T i = 0; i < to; ++i) {
ret.push_back(i);
}
return ret;
}
template <typename T> std::vector<T> __range(T from, T to) {
std::vector<T> ret;
for (T i = from; i < to; ++i) {
ret.push_back(i);
}
return ret;
}
} // namespace cpp
#define function(args...) [&](args)
#define var auto
#define input(args...) cpp::__input(args)
#define getline(str) std::getline(std::cin, str)
#define print(args...) cpp::__print(args)
#define main() int main()
#define import using namespace
#define new(args...)(args);
#define array vector
#define in :
#define range(args...) cpp::__range(args)
//以上为准备工作,以下为正经代码
import std;
main() {
var str = string new();
getline(str);
struct node {
char c;
size_t i;
};
var arr = array<node> new();
for (var i in range(str.length())) {
arr.push_back(node{str[i], i});
}
sort(arr.begin(), arr.end(), function(node a, node b) {
if (a.c == b.c) {
return a.i < b.i;
}
return a.c < b.c;
});
for (var i in arr) {
print(i.c, " ", i.i, "\n");
}
}
Dev-C++5.11编译不了,但是酷町堂的在线IDE可以编译
薛乘志在2022-08-28 15:44:28追加了内容
是不是有点某脚本语言的风格了?
薛乘志在2022-08-28 15:45:51追加了内容
#include <bits/stdc++.h>
namespace cpp {
template <typename A> void __input(A &arg) {
std::cin >> arg;
}
template <typename A, typename... B> void __input(A &arg, B &...args) {
std::cin >> arg;
__input(args...);
}
template <typename A> void __print(A arg) {
std::cout << arg;
}
template <typename A, typename... B> void __print(A arg, B... args) {
std::cout << arg;
__print(args...);
}
template <typename T> std::vector<T> __range(T to) {
std::vector<T> ret;
for (T i = 0; i < to; ++i) {
ret.push_back(i);
}
return ret;
}
template <typename T> std::vector<T> __range(T from, T to) {
std::vector<T> ret;
for (T i = from; i < to; ++i) {
ret.push_back(i);
}
return ret;
}
} // namespace cpp
#define function(args...) [&](args)
#define var auto
#define input(args...) cpp::__input(args)
#define getline(str) std::getline(std::cin, str)
#define print(args...) cpp::__print(args)
#define main() int main()
#define import using namespace
#define new(args...)(args);
#define array vector
#define in :
#define range(args...) cpp::__range(args)
//以上为准备工作,以下为正经代码
import std;
main() {
var str = string new();
getline(str);
struct node {
char c;
size_t i;
};
var arr = array<node> new();
for (var i in range(str.length())) {
arr.push_back(node{str[i], i});
}
sort(arr.begin(), arr.end(), function(node a, node b) {
if (a.c == b.c) {
return a.i < b.i;
}
return a.c < b.c;
});
for (var i in arr) {
print(i.c, " ", i.i, "\n");
}
}
用某脚本语言的代码框再发一遍看看效果